@eslinted/core 29.4.6 → 29.4.8

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,6CAgJvF"}
package/dist/factory.js CHANGED
@@ -1,84 +1,73 @@
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
49
- .filter(scope => settings[scope] !== undefined)
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
50
40
  .map(scope => {
51
- const { languageOptions, parserOptions, processor, language, } = settings[scope];
52
- if (languageOptions?.parser !== undefined)
53
- languageOptions.parser = parsers[languageOptions.parser];
54
- if (parserOptions?.parser !== undefined)
55
- parserOptions.parser = parsers[parserOptions.parser];
56
- const definition = languageOptions === undefined
57
- ? parserOptions === undefined
58
- ? {}
59
- : {
60
- languageOptions: {
61
- parserOptions,
62
- },
63
- }
64
- : {
65
- languageOptions: parserOptions === undefined
66
- ? languageOptions
67
- : Object.assign(languageOptions, { parserOptions }),
68
- };
69
- if (processor !== undefined)
70
- definition.processor = processor;
71
- if (language !== undefined)
72
- definition.language = language;
41
+ const definition = {};
42
+ if (settings[scope] !== undefined) {
43
+ const { languageOptions, parserOptions, processor, language, } = settings[scope];
44
+ if (languageOptions?.parser !== undefined)
45
+ languageOptions.parser = parsers[languageOptions.parser];
46
+ if (parserOptions?.parser !== undefined)
47
+ parserOptions.parser = parsers[parserOptions.parser];
48
+ if (parserOptions === undefined) {
49
+ if (languageOptions !== undefined)
50
+ definition.languageOptions = languageOptions;
51
+ }
52
+ else if (languageOptions === undefined)
53
+ definition.languageOptions = {
54
+ parserOptions,
55
+ };
56
+ else
57
+ definition.languageOptions = Object.assign(languageOptions, { parserOptions });
58
+ if (processor !== undefined)
59
+ definition.processor = processor;
60
+ if (language !== undefined)
61
+ definition.language = language;
62
+ }
73
63
  return {
74
64
  files: defaults.files[scope],
75
65
  ignores: defaults.ignores[scope] ?? [],
76
- "extends": [definition],
66
+ "extends": [
67
+ Object.keys(definition).length === 0 ? [] : definition,
68
+ defaults.rules[scope],
69
+ ],
77
70
  };
78
- }), active.map(scope => ({
79
- files: defaults.files[scope],
80
- ignores: defaults.ignores[scope] ?? [],
81
- "extends": [defaults.rules[scope]],
82
- })));
71
+ }));
83
72
  }
84
73
  //# sourceMappingURL=factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,aAAa,GACd,MAAM,wBAAwB,CAAC;AAIhC,MAAM,CAAC,OAAO,UAAU,OAAO,CAO7B,MAA2F,EAC3F,QAA6F,EAC7F,IAAyF,EACzF,EACE,OAAO,EACP,OAAO,GAC6E,EACtF,QAA6F,EAC7F,EACE,QAAQ,EACR,UAAU,GAAG,EAAE,GACqE;IAEtF,KAAK,MAAM,KAAK,IAAI,QAAQ;QAC1B,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAEpC,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAkC,CAAC;YACtE,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAkC,CAAC;QACxE,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC5B,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,CACzC,EACD,YAAY,GAAG,IAAI,GAAG,CACpB,QAAQ,CAAC,MAAM,CACb,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAC7B,CACF,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,EACJ,CAAC,KAAK,CAAC,EAAE,EACP,KAAK,EACL,OAAO,EACP,KAAK,GACN,GAAG,EAAE,GACP,GAAG,UAAU,CAAC;QAEf,IAAI,KAAK,KAAK,SAAS;YACrB,KAAK,QAAQ;iBACV,KAAK,CAAC,KAAK,CAAC;iBACZ,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAEpB,IAAI,OAAO,KAAK,SAAS;YACvB,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS;gBAEvC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;;gBAElC,KAAK,QAAQ;qBACV,OAAO,CAAC,KAAK,CAAC;qBACd,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAExB,IAAI,KAAK,KAAK,SAAS;YAErB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CACnB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7B,GAAG,EAAE,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBACpC,KAAK,MAAM,MAAM,IAAI,OAAO;oBAC1B,KAAK,QAAQ;yBACV,KAAK,CAAC,MAAM,CAAC;yBACb,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1C,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS;QAC/B,IACE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI;eAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAEtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;aAEtD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS;YACvC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBACtC,KAAK,QAAQ;qBACV,OAAO,CAAC,GAAG,CAAC;qBACZ,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAC1B,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;WAC5B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;WAClC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CACxC,CAAC;IAEF,OAAO,YAAY,CACjB;QACE,OAAO;KACR,EACD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;QACjC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACxC,MAAM;SACH,MAAM,CACL,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,CACvC;SACA,GAAG,CACF,KAAK,CAAC,EAAE;QACN,MAAM,EACJ,eAAe,EACf,aAAa,EACb,SAAS,EACT,QAAQ,GACT,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;QAErB,IAAI,eAAe,EAAE,MAAM,KAAK,SAAS;YACvC,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAW,CAAC;QAErE,IAAI,aAAa,EAAE,MAAM,KAAK,SAAS;YACrC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAW,CAAC;QAEjE,MAAM,UAAU,GAAG,eAAe,KAAK,SAAS;YAC9C,CAAC,CAAC,aAAa,KAAK,SAAS;gBAC3B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,eAAe,EAAE;wBACf,aAAa;qBACd;iBACF;YACL,CAAC,CAAC;gBACE,eAAe,EAAE,aAAa,KAAK,SAAS;oBAC1C,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,eAAe,EACf,EAAE,aAAa,EAAE,CAClB;aACN,CAAC;QAEN,IAAI,SAAS,KAAK,SAAS;YACxB,UAAwD,CAAC,SAAS,GAAG,SAAS,CAAC;QAElF,IAAI,QAAQ,KAAK,SAAS;YACvB,UAAuD,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE/E,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YACtC,SAAS,EAAE,CAAC,UAAU,CAAC;SACxB,CAAC;IACJ,CAAC,CACF,EACH,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,EAAE,CAAC,CAAC;QACR,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QACtC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAyE,CAAC;KAC3G,CAAC,CACH,CACF,CAAC;AACJ,CAAC"}
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.8",
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,80 +90,81 @@ 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
112
110
  .map(
113
111
  scope => {
114
- const {
115
- languageOptions,
116
- parserOptions,
117
- processor,
118
- language,
119
- } = settings[scope]!;
120
-
121
- if (languageOptions?.parser !== undefined)
122
- languageOptions.parser = parsers[languageOptions.parser] as Parser;
123
-
124
- if (parserOptions?.parser !== undefined)
125
- parserOptions.parser = parsers[parserOptions.parser] as Parser;
126
-
127
- const definition = languageOptions === undefined
128
- ? parserOptions === undefined
129
- ? {}
130
- : {
131
- languageOptions: {
132
- parserOptions,
133
- },
134
- }
135
- : {
136
- languageOptions: parserOptions === undefined
137
- ? languageOptions
138
- : Object.assign(
139
- languageOptions,
140
- { parserOptions },
141
- ),
112
+ const definition: {
113
+ languageOptions?: {
114
+ parserOptions?: {
115
+ parser?: Parser;
142
116
  };
143
-
144
- if (processor !== undefined)
145
- (definition as typeof definition & { processor: string }).processor = processor;
146
-
147
- if (language !== undefined)
148
- (definition as typeof definition & { language: string }).language = language;
117
+ parser?: Parser;
118
+ };
119
+ processor?: string;
120
+ language?: string;
121
+ } = {};
122
+
123
+ if (settings[scope] !== undefined) {
124
+ const {
125
+ languageOptions,
126
+ parserOptions,
127
+ processor,
128
+ language,
129
+ } = settings[scope];
130
+
131
+ if (languageOptions?.parser !== undefined)
132
+ languageOptions.parser = parsers[languageOptions.parser] as Parser;
133
+
134
+ if (parserOptions?.parser !== undefined)
135
+ parserOptions.parser = parsers[parserOptions.parser] as Parser;
136
+
137
+ if (parserOptions === undefined) {
138
+ if (languageOptions !== undefined)
139
+ definition.languageOptions = languageOptions;
140
+ }
141
+ else
142
+ // parser YES
143
+ if (languageOptions === undefined)
144
+ // language NO parser YES
145
+ definition.languageOptions = {
146
+ parserOptions,
147
+ };
148
+ else
149
+ // language YES parser YES
150
+ definition.languageOptions = Object.assign(languageOptions, { parserOptions });
151
+
152
+ if (processor !== undefined)
153
+ (definition as typeof definition & { processor: string }).processor = processor;
154
+
155
+ if (language !== undefined)
156
+ (definition as typeof definition & { language: string }).language = language;
157
+ }
149
158
 
150
159
  return {
151
160
  files: defaults.files[scope],
152
161
  ignores: defaults.ignores[scope] ?? [],
153
- "extends": [definition],
162
+ "extends": [
163
+ Object.keys(definition).length === 0 ? [] : definition,
164
+ defaults.rules[scope] as MutableRuleConfigs<NonNullable<typeof defaults.rules[typeof scope]>>,
165
+ ],
154
166
  };
155
167
  },
156
168
  ),
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
169
  );
165
170
  }