@eslinted/core 32.1.4 → 32.1.6

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 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
- *.code-snippets text eol=lf
58
+ *.lark text eol=lf
59
+ *.re text eol=lf
@@ -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,wHA0IxD"}
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), global = extensions["*"];
3
- if (global)
4
- if (global.override
5
- || !defaults.ignores["*"])
6
- defaults.ignores["*"] = (global.ignores ?? []);
7
- else if (global.ignores?.length)
8
- void defaults.ignores["*"].push(...global.ignores);
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
- void defaults.files[scope].push(...extension.files);
22
- if (extension.ignores)
23
- if (defaults.ignores[scope])
24
- void defaults.ignores[scope].push(...extension.ignores);
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
- void defaults.files[parent].push(...files);
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 = defaults.files[scope], ignores = defaults.ignores[scope] ?? [];
58
+ const { files: { [scope]: files }, ignores: { [scope]: ignores }, } = defaults;
42
59
  for (const rule of defaults.rules[scope]) {
43
60
  rule.files = files;
44
- rule.ignores = ignores;
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
- setting.ignores = ignores;
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, scopeConfigCount = scopeRuleConfigCount + scopeSettingConfigCount;
65
- configs.length = scopeConfigCount + 1;
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
- configs[scopeConfigCount] = {
69
- ignores: defaults.ignores["*"] ?? [],
70
- };
87
+ if (defaults.ignores["*"]?.length)
88
+ configs[configs.length] = {
89
+ ignores: defaults.ignores["*"],
90
+ };
71
91
  if (Object.keys(extensionPlugins).length)
72
- configs[scopeConfigCount + 1] = { plugins: extensionPlugins };
92
+ configs[configs.length] = { plugins: extensionPlugins };
73
93
  return configs;
74
94
  }
75
95
  //# 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
@@ -1,9 +1,9 @@
1
1
  {
2
- "$pkg": "2411.7.0",
2
+ "$pkg": "2412.0.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.4",
6
+ "version": "32.1.6",
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": [],
@@ -15,8 +15,14 @@
15
15
  "npm": "^11"
16
16
  },
17
17
  "type": "module",
18
- "main": "dist/index.js",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ }
23
+ },
19
24
  "types": "dist/index.d.ts",
25
+ "main": "dist/index.js",
20
26
  "devDependencies": {
21
27
  "@types/chai": "^5.2.3",
22
28
  "@types/mocha": "^10.0.10",
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 (global)
19
- if (
20
- global.override
21
- || !defaults.ignores["*"]
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 (global.ignores?.length)
26
- void defaults.ignores["*"].push(
27
- ...global.ignores,
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
- void defaults.files[scope].push(
47
- ...extension.files as string[],
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
- void defaults.ignores[scope].push(
53
- ...extension.ignores,
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
- void defaults.files[parent].push(...files);
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 files = defaults.files[scope],
82
- ignores = defaults.ignores[scope] ?? [];
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
- (rule as Enscope<typeof rule>).ignores = ignores;
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
- (setting as Enscope<typeof setting>).ignores = ignores;
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 = scopeConfigCount + 1;
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
- configs[scopeConfigCount] = {
144
- ignores: defaults.ignores["*"] ?? [],
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[scopeConfigCount + 1] = { plugins: extensionPlugins };
179
+ configs[configs.length] = { plugins: extensionPlugins };
149
180
 
150
181
  return configs;
151
182
  }