@eslinted/core 30.0.1 → 31.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,GAAG,CAAC;AAG1B,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,KAAK,EACtB,cAAc,SAAS,MAAM,EAC7B,cAAc,SAAS,KAAK,EAC5B,MAAM,SAAS,cAAc,GAAG,QAAQ,EAExC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACzF,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6CAqIjG"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,GAAG,CAAC;AAG1B,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,KAAK,EACtB,cAAc,SAAS,MAAM,EAC7B,cAAc,SAAS,KAAK,EAC5B,MAAM,SAAS,cAAc,GAAG,QAAQ,EAExC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACzF,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6CAwFjG"}
package/dist/factory.js CHANGED
@@ -1,81 +1,57 @@
1
1
  import { defineConfig, globalIgnores, } from "@eslint/config-helpers";
2
2
  export default function factory(scopes, optional, tree, imports, settings, defaults, extensions) {
3
3
  const Scopes = new Set(scopes);
4
- if (extensions !== undefined) {
4
+ if (extensions) {
5
5
  for (const scope of optional)
6
- if (extensions[scope] === undefined)
7
- Scopes.delete(scope);
8
- else {
6
+ if (extensions[scope]) {
9
7
  imports.plugins[scope] = extensions[scope].plugin;
10
8
  imports.parsers[scope] = extensions[scope].parser;
11
9
  }
10
+ else
11
+ Scopes.delete(scope);
12
12
  for (const scope of Scopes)
13
- if (extensions[scope] !== undefined) {
14
- if (extensions[scope].files !== undefined)
13
+ if (extensions[scope]) {
14
+ if (extensions[scope].files)
15
15
  void defaults.files[scope].push(...extensions[scope].files);
16
- if (extensions[scope].ignores !== undefined)
17
- if (defaults.ignores[scope] === undefined)
18
- defaults.ignores[scope] = extensions[scope].ignores;
19
- else
16
+ if (extensions[scope].ignores)
17
+ if (defaults.ignores[scope])
20
18
  void defaults.ignores[scope].push(...extensions[scope].ignores);
21
- if (extensions[scope].rules !== undefined)
19
+ else
20
+ defaults.ignores[scope] = extensions[scope].ignores;
21
+ if (extensions[scope].rules)
22
22
  defaults.rules[scope][defaults.rules[scope].length] = { rules: extensions[scope].rules };
23
23
  }
24
24
  }
25
25
  for (const [scope, parents] of tree)
26
26
  if (Scopes.has(scope)
27
- && defaults.files[scope].length !== 0)
27
+ && defaults.files[scope].length)
28
28
  for (const parent of parents)
29
29
  void defaults.files[parent].push(...defaults.files[scope]);
30
- if (extensions !== undefined)
31
- if (extensions["*"] !== undefined)
32
- if (extensions["*"].override === true
33
- || defaults.ignores["*"] === undefined)
30
+ if (extensions)
31
+ if (extensions["*"])
32
+ if (extensions["*"].override
33
+ || !defaults.ignores["*"])
34
34
  defaults.ignores["*"] = extensions["*"].ignores ?? [];
35
- else if (extensions["*"].ignores !== undefined
36
- && extensions["*"].ignores.length !== 0)
35
+ else if (extensions["*"].ignores?.length)
37
36
  void defaults.ignores["*"].push(...extensions["*"].ignores);
38
37
  const enabledScopes = [...Scopes]
39
- .filter(scope => defaults.files[scope].length !== 0)
40
- .filter(scope => defaults.rules[scope].length !== 0);
41
- return defineConfig({ plugins: imports.plugins }, globalIgnores(defaults.ignores["*"] ?? []), enabledScopes
42
- .map(scope => {
43
- const definition = {};
44
- if (settings[scope] !== undefined) {
45
- const { languageOptions, parserOptions, processor, language, } = settings[scope];
46
- if (languageOptions?.parser !== undefined)
47
- languageOptions.parser = imports.parsers[languageOptions.parser];
48
- if (parserOptions?.parser !== undefined)
49
- parserOptions.parser = imports.parsers[parserOptions.parser];
50
- if (parserOptions === undefined) {
51
- if (languageOptions !== undefined)
52
- definition.languageOptions = languageOptions;
38
+ .filter(scope => defaults.files[scope].length)
39
+ .filter(scope => defaults.rules[scope].length);
40
+ for (const scope of enabledScopes)
41
+ if (settings[scope])
42
+ if (settings[scope].languageOptions) {
43
+ settings[scope].languageOptions.parser &&= imports.parsers[settings[scope].languageOptions.parser];
44
+ if (settings[scope].languageOptions.parserOptions)
45
+ settings[scope].languageOptions.parserOptions.parser &&= imports.parsers[settings[scope].languageOptions.parserOptions.parser];
53
46
  }
54
- else if (languageOptions === undefined)
55
- definition.languageOptions = {
56
- parserOptions,
57
- };
58
- else {
59
- languageOptions.parserOptions = parserOptions;
60
- definition.languageOptions = languageOptions;
61
- }
62
- if (processor !== undefined)
63
- definition.processor = processor;
64
- if (language !== undefined)
65
- definition.language = language;
66
- }
67
- return {
68
- files: defaults.files[scope],
69
- ignores: defaults.ignores[scope] ?? [],
70
- "extends": [
71
- definition.languageOptions !== undefined
72
- || definition.language !== undefined
73
- || definition.processor !== undefined
74
- ? definition
75
- : [],
76
- defaults.rules[scope],
77
- ],
78
- };
79
- }));
47
+ return defineConfig({ plugins: imports.plugins }, globalIgnores(defaults.ignores["*"] ?? []), enabledScopes
48
+ .map(scope => ({
49
+ files: defaults.files[scope],
50
+ ignores: defaults.ignores[scope] ?? [],
51
+ "extends": [
52
+ settings[scope] ?? [],
53
+ defaults.rules[scope],
54
+ ],
55
+ })));
80
56
  }
81
57
  //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "$schema": "https://json.schemastore.org/package",
4
4
  "$help": "https://docs.npmjs.com/cli/configuring-npm/package-json",
5
5
  "name": "@eslinted/core",
6
- "version": "30.0.1",
6
+ "version": "31.0.0",
7
7
  "repository": "github:jimmy-zhening-luo/linted-core",
8
8
  "description": "Internal core for npm package `linted`, responsible for producing an array of fully-formed ESLint configurations according to `linted` spec.",
9
9
  "keywords": [],
@@ -18,13 +18,13 @@
18
18
  "main": "dist/index.js",
19
19
  "types": "dist/index.d.ts",
20
20
  "dependencies": {
21
- "@eslint/config-helpers": "^0.4.2"
21
+ "@eslint/config-helpers": "^0.5.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/chai": "^5.2.3",
25
25
  "@types/mocha": "^10.0.10",
26
26
  "chai": "^6.2.1",
27
- "mocha": "^11.7.5",
27
+ "mocha": "11.0.0",
28
28
  "ts-add-js-extension": "^1.6.6",
29
29
  "typescript": "^5.9.3"
30
30
  },
package/src/factory.ts CHANGED
@@ -22,32 +22,31 @@ export default function factory<
22
22
  ) {
23
23
  const Scopes = new Set(scopes);
24
24
 
25
- if (extensions !== undefined) {
25
+ if (extensions) {
26
26
  for (const scope of optional)
27
- if (extensions[scope] === undefined)
28
- Scopes.delete(scope);
29
- else {
27
+ if (extensions[scope]) {
30
28
  imports.plugins[scope] = extensions[scope].plugin as typeof imports.plugins[Optional];
31
29
  imports.parsers[scope] = extensions[scope].parser as typeof imports.parsers[Optional];
32
30
  }
31
+ else
32
+ Scopes.delete(scope);
33
33
 
34
34
  for (const scope of Scopes)
35
- if (extensions[scope] !== undefined) {
36
- if (extensions[scope].files !== undefined)
35
+ if (extensions[scope]) {
36
+ if (extensions[scope].files)
37
37
  void defaults.files[scope].push(
38
38
  ...extensions[scope].files,
39
39
  );
40
40
 
41
- if (extensions[scope].ignores !== undefined)
42
- if (defaults.ignores[scope] === undefined)
43
-
44
- defaults.ignores[scope] = extensions[scope].ignores;
45
- else
41
+ if (extensions[scope].ignores)
42
+ if (defaults.ignores[scope])
46
43
  void defaults.ignores[scope].push(
47
44
  ...extensions[scope].ignores,
48
45
  );
46
+ else
47
+ defaults.ignores[scope] = extensions[scope].ignores;
49
48
 
50
- if (extensions[scope].rules !== undefined)
49
+ if (extensions[scope].rules)
51
50
  defaults.rules[scope][
52
51
  defaults.rules[scope].length
53
52
  ] = { rules: extensions[scope].rules };
@@ -57,98 +56,54 @@ export default function factory<
57
56
  for (const [scope, parents] of tree)
58
57
  if (
59
58
  Scopes.has(scope)
60
- && defaults.files[scope].length !== 0
59
+ && defaults.files[scope].length
61
60
  )
62
61
  for (const parent of parents)
63
62
  void defaults.files[parent].push(
64
63
  ...defaults.files[scope],
65
64
  );
66
65
 
67
- if (extensions !== undefined)
68
- if (extensions["*"] !== undefined)
66
+ if (extensions)
67
+ if (extensions["*"])
69
68
  if (
70
- extensions["*"].override === true
71
- || defaults.ignores["*"] === undefined
69
+ extensions["*"].override
70
+ || !defaults.ignores["*"]
72
71
  )
73
72
  defaults.ignores["*"] = extensions["*"].ignores ?? [];
74
73
  else
75
74
  if (
76
- extensions["*"].ignores !== undefined
77
- && extensions["*"].ignores.length !== 0
75
+ extensions["*"].ignores?.length
78
76
  )
79
77
  void defaults.ignores["*"].push(
80
78
  ...extensions["*"].ignores,
81
79
  );
82
80
 
83
81
  const enabledScopes = [...Scopes]
84
- .filter(scope => defaults.files[scope].length !== 0)
85
- .filter(scope => defaults.rules[scope].length !== 0);
82
+ .filter(scope => defaults.files[scope].length)
83
+ .filter(scope => defaults.rules[scope].length);
84
+
85
+ for (const scope of enabledScopes)
86
+ if (settings[scope])
87
+ if (settings[scope].languageOptions) {
88
+ settings[scope].languageOptions.parser &&= imports.parsers[settings[scope].languageOptions.parser] as Parser;
89
+
90
+ if (settings[scope].languageOptions.parserOptions)
91
+ settings[scope].languageOptions.parserOptions.parser &&= imports.parsers[settings[scope].languageOptions.parserOptions.parser] as Parser;
92
+ }
86
93
 
87
94
  return defineConfig(
88
95
  { plugins: imports.plugins },
89
96
  globalIgnores(defaults.ignores["*"] ?? []),
90
97
  enabledScopes
91
98
  .map(
92
- scope => {
93
- const definition: {
94
- languageOptions?: {
95
- parserOptions?: {
96
- parser?: Parser;
97
- };
98
- parser?: Parser;
99
- };
100
- processor?: string;
101
- language?: string;
102
- } = {};
103
-
104
- if (settings[scope] !== undefined) {
105
- const {
106
- languageOptions,
107
- parserOptions,
108
- processor,
109
- language,
110
- } = settings[scope];
111
-
112
- if (languageOptions?.parser !== undefined)
113
- languageOptions.parser = imports.parsers[languageOptions.parser] as Parser;
114
-
115
- if (parserOptions?.parser !== undefined)
116
- parserOptions.parser = imports.parsers[parserOptions.parser] as Parser;
117
-
118
- if (parserOptions === undefined) {
119
- if (languageOptions !== undefined)
120
- definition.languageOptions = languageOptions;
121
- }
122
- else
123
- if (languageOptions === undefined)
124
- definition.languageOptions = {
125
- parserOptions,
126
- };
127
- else {
128
- (languageOptions as NonNullable<typeof definition.languageOptions>).parserOptions = parserOptions;
129
- definition.languageOptions = languageOptions;
130
- }
131
-
132
- if (processor !== undefined)
133
- (definition as typeof definition & { processor: string }).processor = processor;
134
-
135
- if (language !== undefined)
136
- (definition as typeof definition & { language: string }).language = language;
137
- }
138
-
139
- return {
140
- files: defaults.files[scope],
141
- ignores: defaults.ignores[scope] ?? [],
142
- "extends": [
143
- definition.languageOptions !== undefined
144
- || definition.language !== undefined
145
- || definition.processor !== undefined
146
- ? definition
147
- : [],
148
- defaults.rules[scope] as MutableRuleConfigs<NonNullable<typeof defaults.rules[typeof scope]>>,
149
- ],
150
- };
151
- },
99
+ scope => ({
100
+ files: defaults.files[scope],
101
+ ignores: defaults.ignores[scope] ?? [],
102
+ "extends": [
103
+ settings[scope] ?? [],
104
+ defaults.rules[scope] as MutableRuleConfigs<NonNullable<typeof defaults.rules[typeof scope]>>,
105
+ ],
106
+ }),
152
107
  ),
153
108
  );
154
109
  }
@@ -4,10 +4,10 @@ export interface Setting<
4
4
  languageOptions?: {
5
5
  [property: string]: unknown;
6
6
  parser?: Parser;
7
- };
8
- parserOptions?: {
9
- [property: string]: unknown;
10
- parser?: Parser;
7
+ parserOptions?: {
8
+ [property: string]: unknown;
9
+ parser?: Parser;
10
+ };
11
11
  };
12
12
  language?: string;
13
13
  processor?: string;