@eslinted/core 33.1.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 +24 -24
- package/dist/factory.js.map +1 -1
- package/package.json +1 -1
- package/src/factory.ts +51 -54
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,13 +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
|
|
6
|
-
|| !defaults.ignores["*"])
|
|
5
|
+
if (globalExtension.override)
|
|
7
6
|
defaults.ignores["*"] = (globalExtension.ignores ?? []);
|
|
8
7
|
else if (globalExtension.ignores?.length) {
|
|
9
|
-
const { "*": ignores } = defaults.ignores, { length } = ignores, { length:
|
|
10
|
-
ignores.length = length +
|
|
11
|
-
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)
|
|
12
11
|
ignores[length + i] = globalExtension.ignores[i];
|
|
13
12
|
}
|
|
14
13
|
}
|
|
@@ -24,16 +23,16 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
24
23
|
if (extensions[scope]) {
|
|
25
24
|
const extension = extensions[scope];
|
|
26
25
|
if (extension.files?.length) {
|
|
27
|
-
const { [scope]: files } = defaults.files, { length } = files, { length:
|
|
28
|
-
files.length = length +
|
|
29
|
-
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)
|
|
30
29
|
files[length + i] = extension.files[i];
|
|
31
30
|
}
|
|
32
31
|
if (extension.ignores?.length)
|
|
33
32
|
if (defaults.ignores[scope]?.length) {
|
|
34
|
-
const ignores = defaults.ignores[scope], { length } = ignores, { length:
|
|
35
|
-
ignores.length = length +
|
|
36
|
-
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)
|
|
37
36
|
ignores[length + i] = extension.ignores[i];
|
|
38
37
|
}
|
|
39
38
|
else
|
|
@@ -46,19 +45,20 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
46
45
|
&& defaults.files[scope].length) {
|
|
47
46
|
const { [scope]: files } = defaults.files;
|
|
48
47
|
for (const parent of parents) {
|
|
49
|
-
const { [parent]: parentFiles } = defaults.files, { length } = parentFiles, { length:
|
|
50
|
-
parentFiles.length =
|
|
51
|
-
for (let i = 0; i <
|
|
52
|
-
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];
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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];
|
|
58
59
|
rules.files = files;
|
|
59
60
|
if (ignores)
|
|
60
61
|
rules.ignores = ignores;
|
|
61
|
-
const setting = settings[scope];
|
|
62
62
|
if (setting) {
|
|
63
63
|
setting.files = files;
|
|
64
64
|
if (ignores)
|
|
@@ -79,16 +79,16 @@ export default function factory(scopes, optional, tree, parsers, settings, defau
|
|
|
79
79
|
}
|
|
80
80
|
const configs = [
|
|
81
81
|
{
|
|
82
|
-
ignores: defaults.ignores["*"],
|
|
82
|
+
ignores: defaults.ignores["*"] ?? [],
|
|
83
83
|
},
|
|
84
|
-
], { length: nSettings } =
|
|
84
|
+
], ruleScopes = [...Scopes], settingScopes = ruleScopes.filter(scope => scope in settings), { length: nSettings } = settingScopes, preamble = 1 + nSettings;
|
|
85
85
|
configs.length = preamble;
|
|
86
86
|
for (let i = 0; i < nSettings; ++i)
|
|
87
|
-
configs[1 + i] = settings[
|
|
88
|
-
const { length: nRules } =
|
|
87
|
+
configs[1 + i] = settings[settingScopes[i]];
|
|
88
|
+
const { length: nRules } = ruleScopes;
|
|
89
89
|
configs.length = preamble + nRules;
|
|
90
90
|
for (let i = 0; i < nRules; ++i)
|
|
91
|
-
configs[preamble + i] = defaults.rules[
|
|
91
|
+
configs[preamble + i] = defaults.rules[ruleScopes[i]];
|
|
92
92
|
if (extensions["*"]?.rules)
|
|
93
93
|
configs[configs.length] = { rules: extensions["*"].rules };
|
|
94
94
|
if (Object.keys(extensionPlugins).length)
|
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,
|
|
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.1.
|
|
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,16 @@ export default function factory<
|
|
|
17
17
|
if (extensions["*"]) {
|
|
18
18
|
const globalExtension = extensions["*"];
|
|
19
19
|
|
|
20
|
-
if (
|
|
21
|
-
globalExtension.override
|
|
22
|
-
|| !defaults.ignores["*"]
|
|
23
|
-
)
|
|
20
|
+
if (globalExtension.override)
|
|
24
21
|
defaults.ignores["*"] = (globalExtension.ignores ?? []) as string[];
|
|
25
22
|
else if (globalExtension.ignores?.length) {
|
|
26
|
-
const { "*": ignores } = defaults.ignores,
|
|
23
|
+
const { "*": ignores = [] } = defaults.ignores,
|
|
27
24
|
{ length } = ignores,
|
|
28
|
-
{ length:
|
|
25
|
+
{ length: nGlobalExtendedIgnores } = globalExtension.ignores;
|
|
29
26
|
|
|
30
|
-
ignores.length = length +
|
|
27
|
+
ignores.length = length + nGlobalExtendedIgnores;
|
|
31
28
|
|
|
32
|
-
for (let i = 0; i <
|
|
29
|
+
for (let i = 0; i < nGlobalExtendedIgnores; ++i)
|
|
33
30
|
ignores[length + i] = globalExtension.ignores[i]!;
|
|
34
31
|
}
|
|
35
32
|
}
|
|
@@ -51,11 +48,11 @@ export default function factory<
|
|
|
51
48
|
if (extension.files?.length) {
|
|
52
49
|
const { [scope]: files } = defaults.files,
|
|
53
50
|
{ length } = files,
|
|
54
|
-
{ length:
|
|
51
|
+
{ length: nExtendedFiles } = extension.files;
|
|
55
52
|
|
|
56
|
-
files.length = length +
|
|
53
|
+
files.length = length + nExtendedFiles;
|
|
57
54
|
|
|
58
|
-
for (let i = 0; i <
|
|
55
|
+
for (let i = 0; i < nExtendedFiles; ++i)
|
|
59
56
|
files[length + i] = extension.files[i]!;
|
|
60
57
|
}
|
|
61
58
|
|
|
@@ -63,11 +60,11 @@ export default function factory<
|
|
|
63
60
|
if (defaults.ignores[scope]?.length) {
|
|
64
61
|
const ignores = defaults.ignores[scope],
|
|
65
62
|
{ length } = ignores,
|
|
66
|
-
{ length:
|
|
63
|
+
{ length: nExtendedIgnores } = extension.ignores;
|
|
67
64
|
|
|
68
|
-
ignores.length = length +
|
|
65
|
+
ignores.length = length + nExtendedIgnores;
|
|
69
66
|
|
|
70
|
-
for (let i = 0; i <
|
|
67
|
+
for (let i = 0; i < nExtendedIgnores; ++i)
|
|
71
68
|
ignores[length + i] = extension.ignores[i]!;
|
|
72
69
|
}
|
|
73
70
|
else
|
|
@@ -89,47 +86,43 @@ export default function factory<
|
|
|
89
86
|
|
|
90
87
|
for (const parent of parents) {
|
|
91
88
|
const { [parent]: parentFiles } = defaults.files,
|
|
92
|
-
{ length } = parentFiles,
|
|
93
|
-
{ length:
|
|
89
|
+
{ length: nParents } = parentFiles,
|
|
90
|
+
{ length: nChildren } = files;
|
|
94
91
|
|
|
95
|
-
parentFiles.length =
|
|
92
|
+
parentFiles.length = nParents + nChildren;
|
|
96
93
|
|
|
97
|
-
for (let i = 0; i <
|
|
98
|
-
parentFiles[
|
|
94
|
+
for (let i = 0; i < nChildren; ++i)
|
|
95
|
+
parentFiles[nParents + i] = files[i]!;
|
|
99
96
|
}
|
|
100
97
|
}
|
|
101
98
|
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
+
};
|
|
108
107
|
|
|
109
|
-
for (const scope of
|
|
108
|
+
for (const scope of Scopes) {
|
|
110
109
|
const {
|
|
110
|
+
rules: { [scope]: rules },
|
|
111
111
|
files: { [scope]: files },
|
|
112
112
|
ignores: { [scope]: ignores },
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
type Enscope<Config> = Config & {
|
|
117
|
-
files?: typeof files;
|
|
118
|
-
ignores?: typeof ignores;
|
|
119
|
-
};
|
|
113
|
+
} = defaults,
|
|
114
|
+
setting = settings[scope];
|
|
120
115
|
|
|
121
|
-
(rules as
|
|
116
|
+
(rules as Scoped<typeof rules>).files = files;
|
|
122
117
|
|
|
123
118
|
if (ignores)
|
|
124
|
-
(rules as
|
|
125
|
-
|
|
126
|
-
const setting = settings[scope];
|
|
119
|
+
(rules as Scoped<typeof rules>).ignores = ignores;
|
|
127
120
|
|
|
128
121
|
if (setting) {
|
|
129
|
-
(setting as
|
|
122
|
+
(setting as Scoped<typeof setting>).files = files;
|
|
130
123
|
|
|
131
124
|
if (ignores)
|
|
132
|
-
(setting as
|
|
125
|
+
(setting as Scoped<typeof setting>).ignores = ignores;
|
|
133
126
|
|
|
134
127
|
if (setting.languageOptions) {
|
|
135
128
|
const {
|
|
@@ -151,36 +144,40 @@ export default function factory<
|
|
|
151
144
|
}
|
|
152
145
|
}
|
|
153
146
|
|
|
154
|
-
const configs:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
147
|
+
const configs: Scoped<
|
|
148
|
+
Partial<
|
|
149
|
+
Record<
|
|
150
|
+
| "plugins"
|
|
151
|
+
| "rules"
|
|
152
|
+
| "languageOptions"
|
|
153
|
+
| "language"
|
|
154
|
+
| "processor",
|
|
155
|
+
unknown
|
|
156
|
+
>
|
|
164
157
|
>
|
|
165
158
|
>[] = [
|
|
166
159
|
{
|
|
167
|
-
ignores: defaults.ignores["*"]
|
|
160
|
+
ignores: defaults.ignores["*"] ?? [],
|
|
168
161
|
},
|
|
169
162
|
],
|
|
170
|
-
|
|
163
|
+
ruleScopes = [...Scopes],
|
|
164
|
+
settingScopes = ruleScopes.filter(
|
|
165
|
+
scope => scope in settings,
|
|
166
|
+
),
|
|
167
|
+
{ length: nSettings } = settingScopes,
|
|
171
168
|
preamble = 1 + nSettings;
|
|
172
169
|
|
|
173
170
|
configs.length = preamble;
|
|
174
171
|
|
|
175
172
|
for (let i = 0; i < nSettings; ++i)
|
|
176
|
-
configs[1 + i] = settings[
|
|
173
|
+
configs[1 + i] = settings[settingScopes[i]]!;
|
|
177
174
|
|
|
178
|
-
const { length: nRules } =
|
|
175
|
+
const { length: nRules } = ruleScopes;
|
|
179
176
|
|
|
180
177
|
configs.length = preamble + nRules;
|
|
181
178
|
|
|
182
179
|
for (let i = 0; i < nRules; ++i)
|
|
183
|
-
configs[preamble + i] = defaults.rules[
|
|
180
|
+
configs[preamble + i] = defaults.rules[ruleScopes[i]!]!;
|
|
184
181
|
|
|
185
182
|
if (extensions["*"]?.rules)
|
|
186
183
|
configs[configs.length] = { rules: extensions["*"].rules };
|