@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 +4 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +31 -29
- package/dist/factory.js.map +1 -1
- package/package.json +1 -1
- package/src/factory.ts +68 -67
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" | "
|
|
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
|
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;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
|
|
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:
|
|
9
|
-
ignores.length = length +
|
|
10
|
-
for (let i = 0; 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:
|
|
27
|
-
files.length = length +
|
|
28
|
-
for (let i = 0; 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:
|
|
34
|
-
ignores.length = length +
|
|
35
|
-
for (let i = 0; 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:
|
|
49
|
-
parentFiles.length =
|
|
50
|
-
for (let i = 0; i <
|
|
51
|
-
parentFiles[
|
|
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
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
for (const scope of
|
|
58
|
-
const {
|
|
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 =
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
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,CAAC;IAE/B,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,eAAe,CAAC,QAAQ
|
|
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.
|
|
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
|
|
20
|
+
if (globalExtension.override)
|
|
21
21
|
defaults.ignores["*"] = (globalExtension.ignores ?? []) as string[];
|
|
22
|
-
else
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
27
|
+
ignores.length = length + nGlobalExtendedIgnores;
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
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:
|
|
51
|
+
{ length: nExtendedFiles } = extension.files;
|
|
54
52
|
|
|
55
|
-
files.length = length +
|
|
53
|
+
files.length = length + nExtendedFiles;
|
|
56
54
|
|
|
57
|
-
for (let i = 0; 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:
|
|
63
|
+
{ length: nExtendedIgnores } = extension.ignores;
|
|
66
64
|
|
|
67
|
-
ignores.length = length +
|
|
65
|
+
ignores.length = length + nExtendedIgnores;
|
|
68
66
|
|
|
69
|
-
for (let i = 0; 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:
|
|
89
|
+
{ length: nParents } = parentFiles,
|
|
90
|
+
{ length: nChildren } = files;
|
|
93
91
|
|
|
94
|
-
parentFiles.length =
|
|
92
|
+
parentFiles.length = nParents + nChildren;
|
|
95
93
|
|
|
96
|
-
for (let i = 0; i <
|
|
97
|
-
parentFiles[
|
|
94
|
+
for (let i = 0; i < nChildren; ++i)
|
|
95
|
+
parentFiles[nParents + i] = files[i]!;
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
98
|
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
|
108
|
+
for (const scope of Scopes) {
|
|
107
109
|
const {
|
|
110
|
+
rules: { [scope]: rules },
|
|
108
111
|
files: { [scope]: files },
|
|
109
112
|
ignores: { [scope]: ignores },
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
} = defaults,
|
|
114
|
+
setting = settings[scope];
|
|
112
115
|
|
|
113
|
-
|
|
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
|
|
122
|
-
|
|
123
|
-
const setting = settings[scope];
|
|
119
|
+
(rules as Scoped<typeof rules>).ignores = ignores;
|
|
124
120
|
|
|
125
121
|
if (setting) {
|
|
126
|
-
(setting as
|
|
122
|
+
(setting as Scoped<typeof setting>).files = files;
|
|
127
123
|
|
|
128
124
|
if (ignores)
|
|
129
|
-
(setting as
|
|
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:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
147
|
+
const configs: Scoped<
|
|
148
|
+
Partial<
|
|
149
|
+
Record<
|
|
150
|
+
| "plugins"
|
|
151
|
+
| "rules"
|
|
152
|
+
| "languageOptions"
|
|
153
|
+
| "language"
|
|
154
|
+
| "processor",
|
|
155
|
+
unknown
|
|
156
|
+
>
|
|
161
157
|
>
|
|
162
|
-
>[] =
|
|
163
|
-
|
|
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
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
}
|