• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ota-meshi / jsonc-eslint-parser / 9441882216

10 Jun 2024 03:08AM UTC coverage: 88.791%. Remained the same
9441882216

Pull #167

github

web-flow
Merge 98884f0b5 into 1fe0d2e4e
Pull Request #167: chore(deps): update dependency typescript to ~5.4.0

308 of 365 branches covered (84.38%)

Branch coverage included in aggregate %.

603 of 661 relevant lines covered (91.23%)

64.16 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

41.18
/src/parser/modules/espree.ts
1
import { loadNewest, requireFromCwd, requireFromLinter } from "./require-utils";
1✔
2
import { lte } from "semver";
1✔
3

4
/**
5
 * The interface of ESLint custom parsers.
6
 */
7
export interface ESPree {
8
  latestEcmaVersion?: number;
9
  version: string;
10
}
11

12
let espreeCache: ESPree | null = null;
1✔
13

14
/**
15
 * Load `espree` from the loaded ESLint.
16
 * If the loaded ESLint was not found, just returns `require("espree")`.
17
 */
18
export function getEspree(): ESPree {
1✔
19
  if (!espreeCache) {
176✔
20
    espreeCache = loadNewest([
1✔
21
      {
22
        getPkg() {
23
          return requireFromCwd("espree/package.json");
1✔
24
        },
25
        get() {
26
          return requireFromCwd("espree");
×
27
        },
28
      },
29
      {
30
        getPkg() {
31
          return requireFromLinter("espree/package.json");
1✔
32
        },
33
        get() {
34
          return requireFromLinter("espree");
×
35
        },
36
      },
37
      {
38
        getPkg() {
39
          // eslint-disable-next-line @typescript-eslint/no-require-imports -- special require
40
          return require("espree/package.json");
1✔
41
        },
42
        get() {
43
          // eslint-disable-next-line @typescript-eslint/no-require-imports -- special require
44
          return require("espree");
1✔
45
        },
46
      },
47
    ]);
48
  }
49
  return espreeCache!;
176✔
50
}
51

52
type NewestKind = "cwd" | "linter" | "self";
53

54
let kindCache: NewestKind | null = null;
1✔
55

56
/**
57
 * Get the newest `espree` kind from the loaded ESLint or dependency.
58
 */
59
export function getNewestEspreeKind(): NewestKind {
1✔
60
  if (kindCache) {
×
61
    return kindCache;
×
62
  }
63
  const cwdPkg: { version: string } | null = requireFromCwd(
×
64
    "espree/package.json",
65
  );
66
  const linterPkg: { version: string } | null = requireFromLinter(
×
67
    "espree/package.json",
68
  );
69
  // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports -- ignore
70
  const self: { version: string } = require("espree/package.json");
×
71

72
  let target: { kind: NewestKind; version: string } = {
×
73
    kind: "self",
74
    version: self.version,
75
  };
76
  if (cwdPkg != null && lte(target.version, cwdPkg.version)) {
×
77
    target = { kind: "cwd", version: cwdPkg.version };
×
78
  }
79
  if (linterPkg != null && lte(target.version, linterPkg.version)) {
×
80
    target = { kind: "linter", version: linterPkg.version };
×
81
  }
82
  return (kindCache = target.kind);
×
83
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc