@eslinted/core 29.4.6 → 29.4.7

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,EACE,OAAO,EACP,OAAO,GACR,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACtF,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,EACE,QAAQ,EACR,UAAe,GAChB,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6CA2IvF"}
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,EACE,OAAO,EACP,OAAO,GACR,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACtF,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7F,EACE,QAAQ,EACR,UAAe,GAChB,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6CAsIvF"}
package/dist/factory.js CHANGED
@@ -1,51 +1,42 @@
1
1
  import { defineConfig, globalIgnores, } from "@eslint/config-helpers";
2
2
  export default function factory(scopes, optional, tree, { plugins, parsers, }, settings, { defaults, extensions = {}, }) {
3
- for (const scope of optional)
4
- if (extensions[scope] !== undefined) {
5
- plugins[scope] = extensions[scope].plugin;
6
- parsers[scope] = extensions[scope].parser;
7
- }
8
- const extended = scopes.filter(scope => extensions[scope] !== undefined), optionalized = new Set(optional.filter(scope => !(scope in parsers)));
9
- for (const scope of extended) {
3
+ const Scopes = new Set(scopes), OptionalScopes = new Set(optional), RequiredScopes = Scopes.difference(OptionalScopes), ExtendedScopes = new Set(Object.keys(extensions))
4
+ .intersection(Scopes), ExtendedOptionalScopes = ExtendedScopes
5
+ .intersection(OptionalScopes), ConfiguredScopes = RequiredScopes
6
+ .union(ExtendedOptionalScopes);
7
+ for (const scope of ExtendedOptionalScopes) {
8
+ plugins[scope] = extensions[scope].plugin;
9
+ parsers[scope] = extensions[scope].parser;
10
+ }
11
+ for (const scope of ExtendedScopes) {
10
12
  const { [scope]: { files, ignores, rules, } = {}, } = extensions;
11
13
  if (files !== undefined)
12
- void defaults
13
- .files[scope]
14
- .push(...files);
14
+ void defaults.files[scope].push(...files);
15
15
  if (ignores !== undefined)
16
16
  if (defaults.ignores[scope] === undefined)
17
17
  defaults.ignores[scope] = ignores;
18
18
  else
19
- void defaults
20
- .ignores[scope]
21
- .push(...ignores);
19
+ void defaults.ignores[scope].push(...ignores);
22
20
  if (rules !== undefined)
23
21
  defaults.rules[scope][defaults.rules[scope].length] = { rules };
24
22
  }
25
23
  for (const [scope, parents] of tree)
26
- if (!optionalized.has(scope))
27
- if (defaults.files[scope].length !== 0)
28
- for (const parent of parents)
29
- void defaults
30
- .files[parent]
31
- .push(...defaults.files[scope]);
24
+ if (ConfiguredScopes.has(scope)
25
+ && defaults.files[scope].length !== 0)
26
+ for (const parent of parents)
27
+ void defaults.files[parent].push(...defaults.files[scope]);
32
28
  if (extensions["*"] !== undefined)
33
29
  if (extensions["*"].override === true
34
30
  || defaults.ignores["*"] === undefined)
35
31
  defaults.ignores["*"] = extensions["*"].ignores ?? [];
36
- else if (extensions["*"].ignores !== undefined)
37
- if (extensions["*"].ignores.length !== 0)
38
- void defaults
39
- .ignores["*"]
40
- .push(...extensions["*"].ignores);
41
- const active = scopes.filter(scope => !optionalized.has(scope)
42
- && defaults.files[scope].length !== 0
43
- && defaults.rules[scope].length !== 0);
44
- return defineConfig({
45
- plugins,
46
- }, defaults.ignores["*"] === undefined
47
- ? []
48
- : globalIgnores(defaults.ignores["*"]), active
32
+ else if (extensions["*"].ignores !== undefined
33
+ && extensions["*"].ignores.length !== 0)
34
+ void defaults.ignores["*"].push(...extensions["*"].ignores);
35
+ const enabledScopes = scopes
36
+ .filter(scope => ConfiguredScopes.has(scope))
37
+ .filter(scope => defaults.files[scope].length !== 0)
38
+ .filter(scope => defaults.rules[scope].length !== 0);
39
+ return defineConfig({ plugins }, globalIgnores(defaults.ignores["*"] ?? []), enabledScopes
49
40
  .filter(scope => settings[scope] !== undefined)
50
41
  .map(scope => {
51
42
  const { languageOptions, parserOptions, processor, language, } = settings[scope];
@@ -73,12 +64,11 @@ export default function factory(scopes, optional, tree, { plugins, parsers, }, s
73
64
  return {
74
65
  files: defaults.files[scope],
75
66
  ignores: defaults.ignores[scope] ?? [],
76
- "extends": [definition],
67
+ "extends": [
68
+ definition,
69
+ defaults.rules[scope],
70
+ ],
77
71
  };
78
- }), active.map(scope => ({
79
- files: defaults.files[scope],
80
- ignores: defaults.ignores[scope] ?? [],
81
- "extends": [defaults.rules[scope]],
82
- })));
72
+ }));
83
73
  }
84
74
  //# 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": "29.4.6",
6
+ "version": "29.4.7",
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
@@ -25,23 +25,25 @@ export default function factory<
25
25
  extensions = {},
26
26
  }: Parameters<typeof Core<Scope, Optional, RequiredPlugin, RequiredParser, Parser>>[5],
27
27
  ) {
28
- for (const scope of optional)
29
- if (extensions[scope] !== undefined) {
30
- /* eslint-disable no-param-reassign */
31
- plugins[scope] = extensions[scope].plugin as typeof plugins[Optional];
32
- parsers[scope] = extensions[scope].parser as typeof parsers[Optional];
33
- }
34
-
35
- const extended = scopes.filter(
36
- scope => extensions[scope] !== undefined,
37
- ),
38
- optionalized = new Set<Scope>(
39
- optional.filter(
40
- scope => !(scope in parsers),
41
- ),
42
- );
28
+ const Scopes = new Set(scopes),
29
+ OptionalScopes = new Set(optional),
30
+ RequiredScopes = Scopes.difference(OptionalScopes),
31
+ ExtendedScopes = new Set(
32
+ Object.keys(extensions) as Scope[],
33
+ )
34
+ .intersection(Scopes),
35
+ ExtendedOptionalScopes = ExtendedScopes
36
+ .intersection(OptionalScopes),
37
+ ConfiguredScopes = RequiredScopes
38
+ .union(ExtendedOptionalScopes);
39
+
40
+ for (const scope of ExtendedOptionalScopes) {
41
+ /* eslint-disable no-param-reassign */
42
+ plugins[scope] = extensions[scope]!.plugin as typeof plugins[Optional];
43
+ parsers[scope] = extensions[scope]!.parser as typeof parsers[Optional];
44
+ }
43
45
 
44
- for (const scope of extended) {
46
+ for (const scope of ExtendedScopes) {
45
47
  const {
46
48
  [scope]: {
47
49
  files,
@@ -51,18 +53,18 @@ export default function factory<
51
53
  } = extensions;
52
54
 
53
55
  if (files !== undefined)
54
- void defaults
55
- .files[scope]
56
- .push(...files);
56
+ void defaults.files[scope].push(
57
+ ...files,
58
+ );
57
59
 
58
60
  if (ignores !== undefined)
59
61
  if (defaults.ignores[scope] === undefined)
60
62
  /* eslint-disable no-param-reassign */
61
63
  defaults.ignores[scope] = ignores;
62
64
  else
63
- void defaults
64
- .ignores[scope]
65
- .push(...ignores);
65
+ void defaults.ignores[scope].push(
66
+ ...ignores,
67
+ );
66
68
 
67
69
  if (rules !== undefined)
68
70
  /* eslint-disable no-param-reassign */
@@ -72,12 +74,14 @@ export default function factory<
72
74
  }
73
75
 
74
76
  for (const [scope, parents] of tree)
75
- if (!optionalized.has(scope))
76
- if (defaults.files[scope].length !== 0)
77
- for (const parent of parents)
78
- void defaults
79
- .files[parent]
80
- .push(...defaults.files[scope]);
77
+ if (
78
+ ConfiguredScopes.has(scope)
79
+ && defaults.files[scope].length !== 0
80
+ )
81
+ for (const parent of parents)
82
+ void defaults.files[parent].push(
83
+ ...defaults.files[scope],
84
+ );
81
85
 
82
86
  if (extensions["*"] !== undefined)
83
87
  if (
@@ -86,29 +90,24 @@ export default function factory<
86
90
  )
87
91
  defaults.ignores["*"] = extensions["*"].ignores ?? [];
88
92
  else
89
- if (extensions["*"].ignores !== undefined)
90
- if (extensions["*"].ignores.length !== 0)
91
- void defaults
92
- .ignores["*"]
93
- .push(...extensions["*"].ignores);
94
-
95
- const active = scopes.filter(
96
- scope => !optionalized.has(scope)
97
- && defaults.files[scope].length !== 0
98
- && defaults.rules[scope].length !== 0,
99
- );
93
+ if (
94
+ extensions["*"].ignores !== undefined
95
+ && extensions["*"].ignores.length !== 0
96
+ )
97
+ void defaults.ignores["*"].push(
98
+ ...extensions["*"].ignores,
99
+ );
100
+
101
+ const enabledScopes = scopes
102
+ .filter(scope => ConfiguredScopes.has(scope))
103
+ .filter(scope => defaults.files[scope].length !== 0)
104
+ .filter(scope => defaults.rules[scope].length !== 0);
100
105
 
101
106
  return defineConfig(
102
- {
103
- plugins,
104
- },
105
- defaults.ignores["*"] === undefined
106
- ? []
107
- : globalIgnores(defaults.ignores["*"]),
108
- active
109
- .filter(
110
- scope => settings[scope] !== undefined,
111
- )
107
+ { plugins },
108
+ globalIgnores(defaults.ignores["*"] ?? []),
109
+ enabledScopes
110
+ .filter(scope => settings[scope] !== undefined)
112
111
  .map(
113
112
  scope => {
114
113
  const {
@@ -150,16 +149,12 @@ export default function factory<
150
149
  return {
151
150
  files: defaults.files[scope],
152
151
  ignores: defaults.ignores[scope] ?? [],
153
- "extends": [definition],
152
+ "extends": [
153
+ definition,
154
+ defaults.rules[scope] as MutableRuleConfigs<NonNullable<typeof defaults.rules[typeof scope]>>,
155
+ ],
154
156
  };
155
157
  },
156
158
  ),
157
- active.map(
158
- scope => ({
159
- files: defaults.files[scope],
160
- ignores: defaults.ignores[scope] ?? [],
161
- "extends": [defaults.rules[scope] as MutableRuleConfigs<NonNullable<typeof defaults.rules[typeof scope]>>],
162
- }),
163
- ),
164
159
  );
165
160
  }