@eslinted/core 32.1.3 → 32.1.5
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/.gitattributes +7 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +43 -23
- package/dist/factory.js.map +1 -1
- package/package.json +3 -3
- package/src/factory.ts +65 -34
package/.gitattributes
CHANGED
|
@@ -20,6 +20,7 @@ LICENSE text eol=lf
|
|
|
20
20
|
*.md text eol=lf
|
|
21
21
|
*.json text eol=lf
|
|
22
22
|
*.jsonc text eol=lf
|
|
23
|
+
*.code-snippets text eol=lf
|
|
23
24
|
*.yml text eol=lf
|
|
24
25
|
*.yaml text eol=lf
|
|
25
26
|
*.csv text eol=lf
|
|
@@ -27,6 +28,9 @@ LICENSE text eol=lf
|
|
|
27
28
|
*.svg text eol=lf
|
|
28
29
|
*.xml text eol=lf
|
|
29
30
|
*.plist text eol=lf
|
|
31
|
+
*.tmLanguage text eol=lf
|
|
32
|
+
*.tmPreferences text eol=lf
|
|
33
|
+
*.tmTheme text eol=lf
|
|
30
34
|
*.h text eol=lf
|
|
31
35
|
*.hpp text eol=lf
|
|
32
36
|
*.hxx text eol=lf
|
|
@@ -47,8 +51,9 @@ LICENSE text eol=lf
|
|
|
47
51
|
*.svelte text eol=lf
|
|
48
52
|
*.py text eol=lf
|
|
49
53
|
*.jinja text eol=lf
|
|
54
|
+
*.npmrc text eol=lf
|
|
50
55
|
*.claspignore text eol=lf
|
|
51
56
|
*.funcignore text eol=lf
|
|
52
|
-
*.npmrc text eol=lf
|
|
53
57
|
*.example text eol=lf
|
|
54
|
-
*.
|
|
58
|
+
*.lark text eol=lf
|
|
59
|
+
*.re text eol=lf
|
package/dist/factory.d.ts.map
CHANGED
|
@@ -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,
|
|
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,wHAyKxD"}
|
package/dist/factory.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
export default function factory(scopes, optional, tree, parsers, settings, defaults, extensions) {
|
|
2
|
-
const Scopes = new Set(scopes)
|
|
3
|
-
if (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
defaults.ignores["*"] = (
|
|
7
|
-
else if (
|
|
8
|
-
|
|
2
|
+
const Scopes = new Set(scopes);
|
|
3
|
+
if (extensions["*"]) {
|
|
4
|
+
const globalExtension = extensions["*"];
|
|
5
|
+
if (globalExtension.override || !defaults.ignores["*"])
|
|
6
|
+
defaults.ignores["*"] = (globalExtension.ignores ?? []);
|
|
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)
|
|
11
|
+
ignores[length + i] = globalExtension.ignores[i];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
9
14
|
const extensionPlugins = {};
|
|
10
15
|
for (const scope of optional)
|
|
11
16
|
if (extensions[scope]) {
|
|
@@ -17,11 +22,19 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
17
22
|
for (const scope of Scopes)
|
|
18
23
|
if (extensions[scope]) {
|
|
19
24
|
const extension = extensions[scope];
|
|
20
|
-
if (extension.files)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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)
|
|
29
|
+
files[length + i] = extension.files[i];
|
|
30
|
+
}
|
|
31
|
+
if (extension.ignores?.length)
|
|
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)
|
|
36
|
+
ignores[length + i] = extension.ignores[i];
|
|
37
|
+
}
|
|
25
38
|
else
|
|
26
39
|
defaults.ignores[scope] = extension.ignores;
|
|
27
40
|
if (extension.rules)
|
|
@@ -31,22 +44,28 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
31
44
|
if (Scopes.has(scope)
|
|
32
45
|
&& defaults.files[scope].length) {
|
|
33
46
|
const { [scope]: files } = defaults.files;
|
|
34
|
-
for (const parent of parents)
|
|
35
|
-
|
|
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];
|
|
52
|
+
}
|
|
36
53
|
}
|
|
37
54
|
const enabledScopes = [...Scopes]
|
|
38
55
|
.filter(scope => defaults.files[scope].length), setScopes = enabledScopes
|
|
39
56
|
.filter(scope => scope in settings);
|
|
40
57
|
for (const scope of enabledScopes) {
|
|
41
|
-
const files
|
|
58
|
+
const { files: { [scope]: files }, ignores: { [scope]: ignores }, } = defaults;
|
|
42
59
|
for (const rule of defaults.rules[scope]) {
|
|
43
60
|
rule.files = files;
|
|
44
|
-
|
|
61
|
+
if (ignores)
|
|
62
|
+
rule.ignores = ignores;
|
|
45
63
|
}
|
|
46
64
|
const setting = settings[scope];
|
|
47
65
|
if (setting) {
|
|
48
66
|
setting.files = files;
|
|
49
|
-
|
|
67
|
+
if (ignores)
|
|
68
|
+
setting.ignores = ignores;
|
|
50
69
|
if (setting.languageOptions) {
|
|
51
70
|
const { parser, parserOptions: { parser: subparser } = {}, } = setting.languageOptions;
|
|
52
71
|
if (parser)
|
|
@@ -61,15 +80,16 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
61
80
|
}
|
|
62
81
|
}
|
|
63
82
|
}
|
|
64
|
-
const configs = enabledScopes.flatMap(scope => defaults.rules[scope]), { length: scopeRuleConfigCount } = configs, { length: scopeSettingConfigCount } = setScopes
|
|
65
|
-
configs.length =
|
|
83
|
+
const configs = enabledScopes.flatMap(scope => defaults.rules[scope]), { length: scopeRuleConfigCount } = configs, { length: scopeSettingConfigCount } = setScopes;
|
|
84
|
+
configs.length = scopeRuleConfigCount + scopeSettingConfigCount;
|
|
66
85
|
for (let i = 0; i < scopeSettingConfigCount; ++i)
|
|
67
86
|
configs[scopeRuleConfigCount + i] = settings[setScopes[i]];
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
87
|
+
if (defaults.ignores["*"]?.length)
|
|
88
|
+
configs[configs.length] = {
|
|
89
|
+
ignores: defaults.ignores["*"],
|
|
90
|
+
};
|
|
71
91
|
if (Object.keys(extensionPlugins).length)
|
|
72
|
-
configs[
|
|
92
|
+
configs[configs.length] = { plugins: extensionPlugins };
|
|
73
93
|
return configs;
|
|
74
94
|
}
|
|
75
95
|
//# sourceMappingURL=factory.js.map
|
package/dist/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO,CAI7B,MAAmD,EACnD,QAAqD,EACrD,IAAiD,EACjD,OAAoD,EACpD,QAAqD,EACrD,QAAqD,EACrD,UAAuD;IAEvD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO,CAI7B,MAAmD,EACnD,QAAqD,EACrD,IAAiD,EACjD,OAAoD,EACpD,QAAqD,EACrD,QAAqD,EACrD,UAAuD;IAEvD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAE/B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACpD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,IAAI,EAAE,CAAa,CAAC;aAEpE,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EACzC,EAAE,MAAM,EAAE,GAAG,OAAO,EACpB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;YAExC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACxB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QACtD,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAA4B,EAAE,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,QAAQ;QAC1B,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;;YAGC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,MAAM;QACxB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAEpC,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,EACzC,EAAE,MAAM,EAAE,GAAG,KAAK,EAClB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;gBAEhC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;gBAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACxB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAC5C,CAAC;YAED,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM;gBAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EACvC,EAAE,MAAM,EAAE,GAAG,OAAO,EACpB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC;oBAElC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;oBAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;wBACxB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;gBAChD,CAAC;;oBAEC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAmB,CAAC;YAE5D,IAAI,SAAS,CAAC,KAAK;gBACjB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CACnB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAC7B,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;IAEH,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI;QACjC,IACE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;eACd,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAC/B,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;YAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,EAChD,EAAE,MAAM,EAAE,GAAG,WAAW,EACxB,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;gBAEtB,WAAW,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;gBAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACxB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACxC,CAAC;QACH,CAAC;IAEH,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC;SAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAChD,SAAS,GAAG,aAAa;SACtB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,EACJ,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EACzB,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAC9B,GAAG,QAAQ,CAAC;QAOb,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,IAA6B,CAAC,KAAK,GAAG,KAAK,CAAC;YAE7C,IAAI,OAAO;gBACR,IAA6B,CAAC,OAAO,GAAG,OAAO,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,OAAO,EAAE,CAAC;YACX,OAAmC,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnD,IAAI,OAAO;gBACR,OAAmC,CAAC,OAAO,GAAG,OAAO,CAAC;YAEzD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,MAAM,EACJ,MAAM,EACN,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAC1C,GAAG,OAAO,CAAC,eAAe,CAAC;gBAE5B,IAAI,MAAM;oBACR,OAAO;yBACJ,eAAe;yBACf,MAAM,GAAG,OAAO,CAAC,MAAM,CAAU,CAAC;gBAEvC,IAAI,SAAS;oBACX,OAAO;yBACJ,eAAe;yBACf,aAAc;yBACd,MAAM,GAAG,OAAO,CAAC,SAAS,CAAU,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAWP,aAAa,CAAC,OAAO,CACzB,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/B,EACD,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,EAC1C,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC;IAEhD,OAAO,CAAC,MAAM,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,EAAE,CAAC;QAC9C,OAAO,CAAC,oBAAoB,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,CAAC;IAE9D,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM;QAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YACxB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;SAC/B,CAAC;IAEJ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM;QACtC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAE1D,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$pkg": "2411.
|
|
2
|
+
"$pkg": "2411.7.0",
|
|
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": "32.1.
|
|
6
|
+
"version": "32.1.5",
|
|
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": [],
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"typescript": "^5.9.3"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
|
-
"clean": "cmd --% /c \"for %G in (types dist build packed) do (if exist %G rmdir /s /q %G) & for %G in (.eslintcache) do (if exist %G del /f /q %G)\" || rm -rf types dist build packed .eslintcache",
|
|
29
|
+
"clean": "cmd --% /c \"for %G in (types dist build packed .svelte-kit) do (if exist %G rmdir /s /q %G) & for %G in (.eslintcache) do (if exist %G del /f /q %G)\" || rm -rf types dist build packed .svelte-kit .eslintcache",
|
|
30
30
|
"build": "npm run build:ts",
|
|
31
31
|
"build:ts": "tsc -b src",
|
|
32
32
|
"build:svelte": "svelte-kit sync && svelte-check && vite build",
|
package/src/factory.ts
CHANGED
|
@@ -12,20 +12,25 @@ export default function factory<
|
|
|
12
12
|
defaults: Parameters<typeof Core<Scope, Optional>>[5],
|
|
13
13
|
extensions: Parameters<typeof Core<Scope, Optional>>[6],
|
|
14
14
|
) {
|
|
15
|
-
const Scopes = new Set(scopes)
|
|
16
|
-
global = extensions["*"];
|
|
15
|
+
const Scopes = new Set(scopes);
|
|
17
16
|
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
defaults.ignores["*"] = (global.ignores ?? []) as string[];
|
|
17
|
+
if (extensions["*"]) {
|
|
18
|
+
const globalExtension = extensions["*"];
|
|
19
|
+
|
|
20
|
+
if (globalExtension.override || !defaults.ignores["*"])
|
|
21
|
+
defaults.ignores["*"] = (globalExtension.ignores ?? []) as string[];
|
|
24
22
|
else
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
if (globalExtension.ignores?.length) {
|
|
24
|
+
const { "*": ignores } = defaults.ignores,
|
|
25
|
+
{ length } = ignores,
|
|
26
|
+
{ length: x } = globalExtension.ignores;
|
|
27
|
+
|
|
28
|
+
ignores.length = length + x;
|
|
29
|
+
|
|
30
|
+
for (let i = 0; i < x; ++i)
|
|
31
|
+
ignores[length + i] = globalExtension.ignores[i]!;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
29
34
|
|
|
30
35
|
const extensionPlugins: Record<string, unknown> = {};
|
|
31
36
|
|
|
@@ -42,16 +47,28 @@ export default function factory<
|
|
|
42
47
|
if (extensions[scope]) {
|
|
43
48
|
const extension = extensions[scope];
|
|
44
49
|
|
|
45
|
-
if (extension.files)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
if (extension.files?.length) {
|
|
51
|
+
const { [scope]: files } = defaults.files,
|
|
52
|
+
{ length } = files,
|
|
53
|
+
{ length: x } = extension.files;
|
|
54
|
+
|
|
55
|
+
files.length = length + x;
|
|
56
|
+
|
|
57
|
+
for (let i = 0; i < x; ++i)
|
|
58
|
+
files[length + i] = extension.files[i]!;
|
|
59
|
+
}
|
|
49
60
|
|
|
50
|
-
if (extension.ignores)
|
|
51
|
-
if (defaults.ignores[scope])
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
61
|
+
if (extension.ignores?.length)
|
|
62
|
+
if (defaults.ignores[scope]?.length) {
|
|
63
|
+
const ignores = defaults.ignores[scope],
|
|
64
|
+
{ length } = ignores,
|
|
65
|
+
{ length: x } = extension.ignores;
|
|
66
|
+
|
|
67
|
+
ignores.length = length + x;
|
|
68
|
+
|
|
69
|
+
for (let i = 0; i < x; ++i)
|
|
70
|
+
ignores[length + i] = extension.ignores[i]!;
|
|
71
|
+
}
|
|
55
72
|
else
|
|
56
73
|
defaults.ignores[scope] = extension.ignores as string[];
|
|
57
74
|
|
|
@@ -68,8 +85,16 @@ export default function factory<
|
|
|
68
85
|
) {
|
|
69
86
|
const { [scope]: files } = defaults.files;
|
|
70
87
|
|
|
71
|
-
for (const parent of parents)
|
|
72
|
-
|
|
88
|
+
for (const parent of parents) {
|
|
89
|
+
const { [parent]: parentFiles } = defaults.files,
|
|
90
|
+
{ length } = parentFiles,
|
|
91
|
+
{ length: x } = files;
|
|
92
|
+
|
|
93
|
+
parentFiles.length = length + x;
|
|
94
|
+
|
|
95
|
+
for (let i = 0; i < x; ++i)
|
|
96
|
+
parentFiles[length + i] = files[i]!;
|
|
97
|
+
}
|
|
73
98
|
}
|
|
74
99
|
|
|
75
100
|
const enabledScopes = [...Scopes]
|
|
@@ -78,8 +103,10 @@ export default function factory<
|
|
|
78
103
|
.filter(scope => scope in settings);
|
|
79
104
|
|
|
80
105
|
for (const scope of enabledScopes) {
|
|
81
|
-
const
|
|
82
|
-
|
|
106
|
+
const {
|
|
107
|
+
files: { [scope]: files },
|
|
108
|
+
ignores: { [scope]: ignores },
|
|
109
|
+
} = defaults;
|
|
83
110
|
|
|
84
111
|
type Enscope<Config> = Config & {
|
|
85
112
|
files?: typeof files;
|
|
@@ -88,14 +115,18 @@ export default function factory<
|
|
|
88
115
|
|
|
89
116
|
for (const rule of defaults.rules[scope]) {
|
|
90
117
|
(rule as Enscope<typeof rule>).files = files;
|
|
91
|
-
|
|
118
|
+
|
|
119
|
+
if (ignores)
|
|
120
|
+
(rule as Enscope<typeof rule>).ignores = ignores;
|
|
92
121
|
}
|
|
93
122
|
|
|
94
123
|
const setting = settings[scope];
|
|
95
124
|
|
|
96
125
|
if (setting) {
|
|
97
126
|
(setting as Enscope<typeof setting>).files = files;
|
|
98
|
-
|
|
127
|
+
|
|
128
|
+
if (ignores)
|
|
129
|
+
(setting as Enscope<typeof setting>).ignores = ignores;
|
|
99
130
|
|
|
100
131
|
if (setting.languageOptions) {
|
|
101
132
|
const {
|
|
@@ -132,20 +163,20 @@ export default function factory<
|
|
|
132
163
|
scope => defaults.rules[scope],
|
|
133
164
|
),
|
|
134
165
|
{ length: scopeRuleConfigCount } = configs,
|
|
135
|
-
{ length: scopeSettingConfigCount } = setScopes
|
|
136
|
-
scopeConfigCount = scopeRuleConfigCount + scopeSettingConfigCount;
|
|
166
|
+
{ length: scopeSettingConfigCount } = setScopes;
|
|
137
167
|
|
|
138
|
-
configs.length =
|
|
168
|
+
configs.length = scopeRuleConfigCount + scopeSettingConfigCount;
|
|
139
169
|
|
|
140
170
|
for (let i = 0; i < scopeSettingConfigCount; ++i)
|
|
141
171
|
configs[scopeRuleConfigCount + i] = settings[setScopes[i]]!;
|
|
142
172
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
173
|
+
if (defaults.ignores["*"]?.length)
|
|
174
|
+
configs[configs.length] = {
|
|
175
|
+
ignores: defaults.ignores["*"],
|
|
176
|
+
};
|
|
146
177
|
|
|
147
178
|
if (Object.keys(extensionPlugins).length)
|
|
148
|
-
configs[
|
|
179
|
+
configs[configs.length] = { plugins: extensionPlugins };
|
|
149
180
|
|
|
150
181
|
return configs;
|
|
151
182
|
}
|