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

ota-meshi / jsonc-eslint-parser / 17888386344

21 Sep 2025 03:28AM UTC coverage: 88.63%. Remained the same
17888386344

push

github

web-flow
chore: release jsonc-eslint-parser (#242)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

308 of 366 branches covered (84.15%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

604 of 663 relevant lines covered (91.1%)

63.98 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

© 2025 Coveralls, Inc