@eslinted/core 33.0.0 → 33.1.1

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.
package/dist/factory.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  import type Core from "./index.js";
2
- export default function factory<Scope extends string, Optional extends Scope>(scopes: Parameters<typeof Core<Scope, Optional>>[0], optional: Parameters<typeof Core<Scope, Optional>>[1], tree: Parameters<typeof Core<Scope, Optional>>[2], parsers: Parameters<typeof Core<Scope, Optional>>[3], settings: Parameters<typeof Core<Scope, Optional>>[4], defaults: Parameters<typeof Core<Scope, Optional>>[5], extensions: Parameters<typeof Core<Scope, Optional>>[6]): Partial<Record<"rules" | "files" | "ignores" | "languageOptions" | "plugins" | "language" | "processor", unknown>>[];
2
+ export default function factory<Scope extends string, Optional extends Scope>(scopes: Parameters<typeof Core<Scope, Optional>>[0], optional: Parameters<typeof Core<Scope, Optional>>[1], tree: Parameters<typeof Core<Scope, Optional>>[2], parsers: Parameters<typeof Core<Scope, Optional>>[3], settings: Parameters<typeof Core<Scope, Optional>>[4], defaults: Parameters<typeof Core<Scope, Optional>>[5], extensions: Parameters<typeof Core<Scope, Optional>>[6]): (Partial<Record<"rules" | "languageOptions" | "plugins" | "language" | "processor", unknown>> & {
3
+ files?: (string | readonly string[])[];
4
+ ignores?: readonly string[];
5
+ })[];
3
6
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,GAAG,CAAC;AAE1B,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,KAAK,EAEtB,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACnD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACpD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,wHA+KxD"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,GAAG,CAAC;AAE1B,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,KAAK,SAAS,MAAM,EACpB,QAAQ,SAAS,KAAK,EAEtB,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACnD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACpD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YA2F7C,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;cAC5B,SAAS,MAAM,EAAE;KAoF9B"}
package/dist/factory.js CHANGED
@@ -2,12 +2,12 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
2
2
  const Scopes = new Set(scopes);
3
3
  if (extensions["*"]) {
4
4
  const globalExtension = extensions["*"];
5
- if (globalExtension.override || !defaults.ignores["*"])
5
+ if (globalExtension.override)
6
6
  defaults.ignores["*"] = (globalExtension.ignores ?? []);
7
7
  else if (globalExtension.ignores?.length) {
8
- const { "*": ignores } = defaults.ignores, { length } = ignores, { length: x } = globalExtension.ignores;
9
- ignores.length = length + x;
10
- for (let i = 0; i < x; ++i)
8
+ const { "*": ignores = [] } = defaults.ignores, { length } = ignores, { length: nGlobalExtendedIgnores } = globalExtension.ignores;
9
+ ignores.length = length + nGlobalExtendedIgnores;
10
+ for (let i = 0; i < nGlobalExtendedIgnores; ++i)
11
11
  ignores[length + i] = globalExtension.ignores[i];
12
12
  }
13
13
  }
@@ -23,16 +23,16 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
23
23
  if (extensions[scope]) {
24
24
  const extension = extensions[scope];
25
25
  if (extension.files?.length) {
26
- const { [scope]: files } = defaults.files, { length } = files, { length: x } = extension.files;
27
- files.length = length + x;
28
- for (let i = 0; i < x; ++i)
26
+ const { [scope]: files } = defaults.files, { length } = files, { length: nExtendedFiles } = extension.files;
27
+ files.length = length + nExtendedFiles;
28
+ for (let i = 0; i < nExtendedFiles; ++i)
29
29
  files[length + i] = extension.files[i];
30
30
  }
31
31
  if (extension.ignores?.length)
32
32
  if (defaults.ignores[scope]?.length) {
33
- const ignores = defaults.ignores[scope], { length } = ignores, { length: x } = extension.ignores;
34
- ignores.length = length + x;
35
- for (let i = 0; i < x; ++i)
33
+ const ignores = defaults.ignores[scope], { length } = ignores, { length: nExtendedIgnores } = extension.ignores;
34
+ ignores.length = length + nExtendedIgnores;
35
+ for (let i = 0; i < nExtendedIgnores; ++i)
36
36
  ignores[length + i] = extension.ignores[i];
37
37
  }
38
38
  else
@@ -45,21 +45,20 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
45
45
  && defaults.files[scope].length) {
46
46
  const { [scope]: files } = defaults.files;
47
47
  for (const parent of parents) {
48
- const { [parent]: parentFiles } = defaults.files, { length } = parentFiles, { length: x } = files;
49
- parentFiles.length = length + x;
50
- for (let i = 0; i < x; ++i)
51
- parentFiles[length + i] = files[i];
48
+ const { [parent]: parentFiles } = defaults.files, { length: nParents } = parentFiles, { length: nChildren } = files;
49
+ parentFiles.length = nParents + nChildren;
50
+ for (let i = 0; i < nChildren; ++i)
51
+ parentFiles[nParents + i] = files[i];
52
52
  }
53
53
  }
54
- const enabledScopes = [...Scopes]
55
- .filter(scope => defaults.files[scope].length), setScopes = enabledScopes
56
- .filter(scope => scope in settings);
57
- for (const scope of enabledScopes) {
58
- const { files: { [scope]: files }, ignores: { [scope]: ignores }, rules: { [scope]: rules }, } = defaults;
54
+ for (const scope of Scopes)
55
+ if (!defaults.files[scope].length)
56
+ Scopes.delete(scope);
57
+ for (const scope of Scopes) {
58
+ const { rules: { [scope]: rules }, files: { [scope]: files }, ignores: { [scope]: ignores }, } = defaults, setting = settings[scope];
59
59
  rules.files = files;
60
60
  if (ignores)
61
61
  rules.ignores = ignores;
62
- const setting = settings[scope];
63
62
  if (setting) {
64
63
  setting.files = files;
65
64
  if (ignores)
@@ -78,19 +77,22 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
78
77
  }
79
78
  }
80
79
  }
81
- const configs = enabledScopes.map(scope => defaults.rules[scope]);
82
- if (defaults.ignores["*"]?.length)
83
- configs.unshift({
84
- ignores: defaults.ignores["*"],
85
- });
80
+ const configs = [
81
+ {
82
+ ignores: defaults.ignores["*"] ?? [],
83
+ },
84
+ ], ruleScopes = [...Scopes], settingScopes = ruleScopes.filter(scope => scope in settings), { length: nSettings } = settingScopes, preamble = 1 + nSettings;
85
+ configs.length = preamble;
86
+ for (let i = 0; i < nSettings; ++i)
87
+ configs[1 + i] = settings[settingScopes[i]];
88
+ const { length: nRules } = ruleScopes;
89
+ configs.length = preamble + nRules;
90
+ for (let i = 0; i < nRules; ++i)
91
+ configs[preamble + i] = defaults.rules[ruleScopes[i]];
86
92
  if (extensions["*"]?.rules)
87
93
  configs[configs.length] = { rules: extensions["*"].rules };
88
94
  if (Object.keys(extensionPlugins).length)
89
95
  configs[configs.length] = { plugins: extensionPlugins };
90
- const { length: scopeRuleConfigCount } = configs, { length: scopeSettingConfigCount } = setScopes;
91
- configs.length = scopeRuleConfigCount + scopeSettingConfigCount;
92
- for (let i = 0; i < scopeSettingConfigCount; ++i)
93
- configs[scopeRuleConfigCount + i] = settings[setScopes[i]];
94
96
  return configs;
95
97
  }
96
98
  //# 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": "33.0.0",
6
+ "version": "33.1.1",
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": [],
package/src/factory.ts CHANGED
@@ -17,19 +17,18 @@ export default function factory<
17
17
  if (extensions["*"]) {
18
18
  const globalExtension = extensions["*"];
19
19
 
20
- if (globalExtension.override || !defaults.ignores["*"])
20
+ if (globalExtension.override)
21
21
  defaults.ignores["*"] = (globalExtension.ignores ?? []) as string[];
22
- else
23
- if (globalExtension.ignores?.length) {
24
- const { "*": ignores } = defaults.ignores,
25
- { length } = ignores,
26
- { length: x } = globalExtension.ignores;
22
+ else if (globalExtension.ignores?.length) {
23
+ const { "*": ignores = [] } = defaults.ignores,
24
+ { length } = ignores,
25
+ { length: nGlobalExtendedIgnores } = globalExtension.ignores;
27
26
 
28
- ignores.length = length + x;
27
+ ignores.length = length + nGlobalExtendedIgnores;
29
28
 
30
- for (let i = 0; i < x; ++i)
31
- ignores[length + i] = globalExtension.ignores[i]!;
32
- }
29
+ for (let i = 0; i < nGlobalExtendedIgnores; ++i)
30
+ ignores[length + i] = globalExtension.ignores[i]!;
31
+ }
33
32
  }
34
33
 
35
34
  const extensionPlugins: Record<string, unknown> = {};
@@ -39,7 +38,6 @@ export default function factory<
39
38
  extensionPlugins[scope] = extensions[scope].plugin;
40
39
  parsers[scope] = extensions[scope].parser;
41
40
  }
42
-
43
41
  else
44
42
  Scopes.delete(scope);
45
43
 
@@ -50,11 +48,11 @@ export default function factory<
50
48
  if (extension.files?.length) {
51
49
  const { [scope]: files } = defaults.files,
52
50
  { length } = files,
53
- { length: x } = extension.files;
51
+ { length: nExtendedFiles } = extension.files;
54
52
 
55
- files.length = length + x;
53
+ files.length = length + nExtendedFiles;
56
54
 
57
- for (let i = 0; i < x; ++i)
55
+ for (let i = 0; i < nExtendedFiles; ++i)
58
56
  files[length + i] = extension.files[i]!;
59
57
  }
60
58
 
@@ -62,11 +60,11 @@ export default function factory<
62
60
  if (defaults.ignores[scope]?.length) {
63
61
  const ignores = defaults.ignores[scope],
64
62
  { length } = ignores,
65
- { length: x } = extension.ignores;
63
+ { length: nExtendedIgnores } = extension.ignores;
66
64
 
67
- ignores.length = length + x;
65
+ ignores.length = length + nExtendedIgnores;
68
66
 
69
- for (let i = 0; i < x; ++i)
67
+ for (let i = 0; i < nExtendedIgnores; ++i)
70
68
  ignores[length + i] = extension.ignores[i]!;
71
69
  }
72
70
  else
@@ -88,45 +86,43 @@ export default function factory<
88
86
 
89
87
  for (const parent of parents) {
90
88
  const { [parent]: parentFiles } = defaults.files,
91
- { length } = parentFiles,
92
- { length: x } = files;
89
+ { length: nParents } = parentFiles,
90
+ { length: nChildren } = files;
93
91
 
94
- parentFiles.length = length + x;
92
+ parentFiles.length = nParents + nChildren;
95
93
 
96
- for (let i = 0; i < x; ++i)
97
- parentFiles[length + i] = files[i]!;
94
+ for (let i = 0; i < nChildren; ++i)
95
+ parentFiles[nParents + i] = files[i]!;
98
96
  }
99
97
  }
100
98
 
101
- const enabledScopes = [...Scopes]
102
- .filter(scope => defaults.files[scope].length),
103
- setScopes = enabledScopes
104
- .filter(scope => scope in settings);
99
+ for (const scope of Scopes)
100
+ if (!defaults.files[scope].length)
101
+ Scopes.delete(scope);
102
+
103
+ type Scoped<PartialConfig> = PartialConfig & {
104
+ files?: (string | readonly string[])[];
105
+ ignores?: readonly string[];
106
+ };
105
107
 
106
- for (const scope of enabledScopes) {
108
+ for (const scope of Scopes) {
107
109
  const {
110
+ rules: { [scope]: rules },
108
111
  files: { [scope]: files },
109
112
  ignores: { [scope]: ignores },
110
- rules: { [scope]: rules },
111
- } = defaults;
113
+ } = defaults,
114
+ setting = settings[scope];
112
115
 
113
- type Enscope<Config> = Config & {
114
- files?: typeof files;
115
- ignores?: typeof ignores;
116
- };
117
-
118
- (rules as Enscope<typeof rules>).files = files;
116
+ (rules as Scoped<typeof rules>).files = files;
119
117
 
120
118
  if (ignores)
121
- (rules as Enscope<typeof rules>).ignores = ignores;
122
-
123
- const setting = settings[scope];
119
+ (rules as Scoped<typeof rules>).ignores = ignores;
124
120
 
125
121
  if (setting) {
126
- (setting as Enscope<typeof setting>).files = files;
122
+ (setting as Scoped<typeof setting>).files = files;
127
123
 
128
124
  if (ignores)
129
- (setting as Enscope<typeof setting>).ignores = ignores;
125
+ (setting as Scoped<typeof setting>).ignores = ignores;
130
126
 
131
127
  if (setting.languageOptions) {
132
128
  const {
@@ -148,27 +144,40 @@ export default function factory<
148
144
  }
149
145
  }
150
146
 
151
- const configs: Partial<
152
- Record<
153
- | "plugins"
154
- | "rules"
155
- | "files"
156
- | "ignores"
157
- | "languageOptions"
158
- | "language"
159
- | "processor",
160
- unknown
147
+ const configs: Scoped<
148
+ Partial<
149
+ Record<
150
+ | "plugins"
151
+ | "rules"
152
+ | "languageOptions"
153
+ | "language"
154
+ | "processor",
155
+ unknown
156
+ >
161
157
  >
162
- >[] = enabledScopes.map(
163
- scope => defaults.rules[scope],
164
- );
158
+ >[] = [
159
+ {
160
+ ignores: defaults.ignores["*"] ?? [],
161
+ },
162
+ ],
163
+ ruleScopes = [...Scopes],
164
+ settingScopes = ruleScopes.filter(
165
+ scope => scope in settings,
166
+ ),
167
+ { length: nSettings } = settingScopes,
168
+ preamble = 1 + nSettings;
169
+
170
+ configs.length = preamble;
171
+
172
+ for (let i = 0; i < nSettings; ++i)
173
+ configs[1 + i] = settings[settingScopes[i]]!;
174
+
175
+ const { length: nRules } = ruleScopes;
165
176
 
166
- if (defaults.ignores["*"]?.length)
167
- configs.unshift(
168
- {
169
- ignores: defaults.ignores["*"],
170
- },
171
- );
177
+ configs.length = preamble + nRules;
178
+
179
+ for (let i = 0; i < nRules; ++i)
180
+ configs[preamble + i] = defaults.rules[ruleScopes[i]!]!;
172
181
 
173
182
  if (extensions["*"]?.rules)
174
183
  configs[configs.length] = { rules: extensions["*"].rules };
@@ -176,13 +185,5 @@ export default function factory<
176
185
  if (Object.keys(extensionPlugins).length)
177
186
  configs[configs.length] = { plugins: extensionPlugins };
178
187
 
179
- const { length: scopeRuleConfigCount } = configs,
180
- { length: scopeSettingConfigCount } = setScopes;
181
-
182
- configs.length = scopeRuleConfigCount + scopeSettingConfigCount;
183
-
184
- for (let i = 0; i < scopeSettingConfigCount; ++i)
185
- configs[scopeRuleConfigCount + i] = settings[setScopes[i]]!;
186
-
187
188
  return configs;
188
189
  }