@standard-config/oxlint 1.0.2 → 1.1.0
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/README.md +16 -0
- package/dist/index.d.mts +14 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +39 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ npm install --save-dev @standard-config/oxlint
|
|
|
19
19
|
pnpm add --save-dev @standard-config/oxlint
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
For [type-aware linting](https://oxc.rs/docs/guide/usage/linter/type-aware.html), make sure both `oxlint` and `oxlint-tsgolint` are installed.
|
|
23
|
+
|
|
22
24
|
## Usage
|
|
23
25
|
|
|
24
26
|
Create your `oxlint.config.ts`:
|
|
@@ -29,6 +31,8 @@ import { defineConfig } from '@standard-config/oxlint';
|
|
|
29
31
|
export default defineConfig();
|
|
30
32
|
```
|
|
31
33
|
|
|
34
|
+
### Overrides
|
|
35
|
+
|
|
32
36
|
You can override the defaults by passing your own [config options](https://oxc.rs/docs/guide/usage/linter/config-file-reference.html).
|
|
33
37
|
|
|
34
38
|
```ts
|
|
@@ -41,6 +45,18 @@ export default defineConfig({
|
|
|
41
45
|
});
|
|
42
46
|
```
|
|
43
47
|
|
|
48
|
+
### React
|
|
49
|
+
|
|
50
|
+
Standard Config includes a set of React-related rules that are off by default. You can enable them by setting `react: true` in the root of your config.
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import { defineConfig } from '@standard-config/oxlint';
|
|
54
|
+
|
|
55
|
+
export default defineConfig({
|
|
56
|
+
react: true,
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
44
60
|
## Related
|
|
45
61
|
|
|
46
62
|
- [**@standard-config/eslint**](https://github.com/standard-config/eslint)
|
package/dist/index.d.mts
CHANGED
|
@@ -3,6 +3,13 @@ import { OxlintConfig, OxlintOverride } from "oxlint";
|
|
|
3
3
|
//#region src/types/index.d.ts
|
|
4
4
|
type LinterConfigEntry = Omit<OxlintConfig, 'files' | 'ignorePatterns' | 'overrides'>;
|
|
5
5
|
type LinterConfigOverrideEntry = Omit<OxlintOverride, 'files'>;
|
|
6
|
+
type StandardConfig = OxlintConfig & {
|
|
7
|
+
/**
|
|
8
|
+
* Enable React-specific rules.
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
react?: boolean;
|
|
12
|
+
};
|
|
6
13
|
//#endregion
|
|
7
14
|
//#region src/config-base/index.d.ts
|
|
8
15
|
declare const config: LinterConfigEntry;
|
|
@@ -10,14 +17,17 @@ declare const config: LinterConfigEntry;
|
|
|
10
17
|
//#region src/config-config-files/index.d.ts
|
|
11
18
|
declare const config$1: LinterConfigOverrideEntry;
|
|
12
19
|
//#endregion
|
|
13
|
-
//#region src/config-
|
|
20
|
+
//#region src/config-react/index.d.ts
|
|
14
21
|
declare const config$2: LinterConfigOverrideEntry;
|
|
15
22
|
//#endregion
|
|
16
|
-
//#region src/config-
|
|
23
|
+
//#region src/config-test-files/index.d.ts
|
|
17
24
|
declare const config$3: LinterConfigOverrideEntry;
|
|
18
25
|
//#endregion
|
|
26
|
+
//#region src/config-type-definitions/index.d.ts
|
|
27
|
+
declare const config$4: LinterConfigOverrideEntry;
|
|
28
|
+
//#endregion
|
|
19
29
|
//#region src/define-config/index.d.ts
|
|
20
|
-
declare function defineConfig(config?:
|
|
30
|
+
declare function defineConfig(config?: StandardConfig): OxlintConfig;
|
|
21
31
|
//#endregion
|
|
22
|
-
export { config as configBase, config$1 as configConfigFiles, config$2 as
|
|
32
|
+
export { config as configBase, config$1 as configConfigFiles, config$2 as configReact, config$3 as configTestFiles, config$4 as configTypeDefinitions, defineConfig };
|
|
23
33
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["OxlintConfig","OxlintOverride","LinterConfigEntry","Omit","LinterConfigOverrideEntry"],"sources":["../src/types/index.d.ts","../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-test-files/index.ts","../src/config-type-definitions/index.ts","../src/define-config/index.ts"],"mappings":";;;KAEYE,iBAAAA,GAAoBC,IAAAA,CAC/BH,YAAAA;AAAAA,KAIWI,yBAAAA,GAA4BD,IAAAA,CAAKF,cAAAA;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["OxlintConfig","OxlintOverride","LinterConfigEntry","Omit","LinterConfigOverrideEntry","StandardConfig","react"],"sources":["../src/types/index.d.ts","../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-react/index.ts","../src/config-test-files/index.ts","../src/config-type-definitions/index.ts","../src/define-config/index.ts"],"mappings":";;;KAEYE,iBAAAA,GAAoBC,IAAAA,CAC/BH,YAAAA;AAAAA,KAIWI,yBAAAA,GAA4BD,IAAAA,CAAKF,cAAAA;AAAAA,KAEjCI,cAAAA,GAAiBL,YAAAA;;;;AAA7B;EAKCM,KAAAA;AAAAA;;;cCZK,MAAA,EAAQ,iBAAA;;;cCAR,QAAA,EAAQ,yBAAA;;;cCAR,QAAA,EAAQ,yBAAA;;;cCAR,QAAA,EAAQ,yBAAA;;;cCAR,QAAA,EAAQ,yBAAA;;;iBCQU,YAAA,CACvB,MAAA,GAAQ,cAAA,GACN,YAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -41,6 +41,7 @@ const config = {
|
|
|
41
41
|
"eslint/grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
42
42
|
"eslint/id-length": "off",
|
|
43
43
|
"eslint/init-declarations": "off",
|
|
44
|
+
"eslint/max-depth": "off",
|
|
44
45
|
"eslint/max-lines": "off",
|
|
45
46
|
"eslint/max-lines-per-function": "off",
|
|
46
47
|
"eslint/max-params": "off",
|
|
@@ -152,12 +153,39 @@ const config$1 = { rules: {
|
|
|
152
153
|
"unicorn/no-empty-file": "off"
|
|
153
154
|
} };
|
|
154
155
|
|
|
156
|
+
//#endregion
|
|
157
|
+
//#region src/config-react/index.ts
|
|
158
|
+
const config$2 = {
|
|
159
|
+
plugins: [
|
|
160
|
+
"jsx-a11y",
|
|
161
|
+
"react",
|
|
162
|
+
"react-perf"
|
|
163
|
+
],
|
|
164
|
+
rules: {
|
|
165
|
+
"react/jsx-filename-extension": ["error", { extensions: [".tsx"] }],
|
|
166
|
+
"react/jsx-max-depth": "off",
|
|
167
|
+
"react/jsx-no-target-blank": ["error", { warnOnSpreadAttributes: true }],
|
|
168
|
+
"react/jsx-props-no-spreading": "off",
|
|
169
|
+
"react/no-multi-comp": "off",
|
|
170
|
+
"react/only-export-components": "off",
|
|
171
|
+
"react/react-in-jsx-scope": "off",
|
|
172
|
+
"react_perf/jsx-no-jsx-as-prop": "off",
|
|
173
|
+
"react_perf/jsx-no-new-array-as-prop": "off",
|
|
174
|
+
"react_perf/jsx-no-new-function-as-prop": "off",
|
|
175
|
+
"react_perf/jsx-no-new-object-as-prop": "off"
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
|
|
155
179
|
//#endregion
|
|
156
180
|
//#region src/config-test-files/index.ts
|
|
157
|
-
const config$
|
|
181
|
+
const config$3 = { rules: {
|
|
158
182
|
"eslint/no-alert": "off",
|
|
183
|
+
"eslint/no-promise-executor-return": "off",
|
|
159
184
|
"import/unambiguous": "off",
|
|
185
|
+
"jsx-a11y/anchor-is-valid": "off",
|
|
160
186
|
"promise/prefer-await-to-then": "off",
|
|
187
|
+
"react/jsx-no-useless-fragment": "off",
|
|
188
|
+
"react/no-children-prop": "off",
|
|
161
189
|
"typescript/ban-ts-comment": "off",
|
|
162
190
|
"typescript/no-confusing-void-expression": "off",
|
|
163
191
|
"typescript/no-empty-function": "off",
|
|
@@ -183,7 +211,7 @@ const config$2 = { rules: {
|
|
|
183
211
|
|
|
184
212
|
//#endregion
|
|
185
213
|
//#region src/config-type-definitions/index.ts
|
|
186
|
-
const config$
|
|
214
|
+
const config$4 = { rules: {
|
|
187
215
|
"import/no-empty-named-blocks": "off",
|
|
188
216
|
"import/no-unassigned-import": "off",
|
|
189
217
|
"import/prefer-default-export": "off",
|
|
@@ -214,7 +242,8 @@ function mergeConfig(baseConfig, extensionConfig) {
|
|
|
214
242
|
continue;
|
|
215
243
|
}
|
|
216
244
|
if (isArray(value) && isArray(result[key])) {
|
|
217
|
-
|
|
245
|
+
const values = [...new Set([...result[key], ...value])];
|
|
246
|
+
result[key] = key === "plugins" ? values.toSorted() : values;
|
|
218
247
|
continue;
|
|
219
248
|
}
|
|
220
249
|
result[key] = {
|
|
@@ -233,26 +262,27 @@ function isObject(value) {
|
|
|
233
262
|
|
|
234
263
|
//#endregion
|
|
235
264
|
//#region src/define-config/index.ts
|
|
236
|
-
function defineConfig(config$
|
|
265
|
+
function defineConfig(config$5 = {}) {
|
|
266
|
+
const { react, ...extensionConfig } = config$5;
|
|
237
267
|
return defineConfig$1(mergeConfig({
|
|
238
|
-
...config,
|
|
268
|
+
...react ? mergeConfig(config, config$2) : config,
|
|
239
269
|
overrides: [
|
|
240
270
|
{
|
|
241
271
|
files: ["**/*.d.{ts,cts,mts}"],
|
|
242
|
-
...config$
|
|
272
|
+
...config$4
|
|
243
273
|
},
|
|
244
274
|
{
|
|
245
275
|
files: ["**/*.test.{ts,tsx,cts,mts}"],
|
|
246
|
-
...config$
|
|
276
|
+
...config$3
|
|
247
277
|
},
|
|
248
278
|
{
|
|
249
279
|
files: ["**/*.config.{ts,cts,mts}", "**/*.setup.{ts,cts,mts}"],
|
|
250
280
|
...config$1
|
|
251
281
|
}
|
|
252
282
|
]
|
|
253
|
-
},
|
|
283
|
+
}, extensionConfig));
|
|
254
284
|
}
|
|
255
285
|
|
|
256
286
|
//#endregion
|
|
257
|
-
export { config as configBase, config$1 as configConfigFiles, config$2 as
|
|
287
|
+
export { config as configBase, config$1 as configConfigFiles, config$2 as configReact, config$3 as configTestFiles, config$4 as configTypeDefinitions, defineConfig };
|
|
258
288
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["config","config","config","clone","oxlintDefineConfig","configBase","configTypeDefinitions","configTestFiles","configConfigFiles","config"],"sources":["../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-test-files/index.ts","../src/config-type-definitions/index.ts","../src/clone/index.ts","../src/merge-config/index.ts","../src/define-config/index.ts"],"sourcesContent":["import type { LinterConfigEntry } from '../types/index.js';\n\nconst config: LinterConfigEntry = {\n\tplugins: [\n\t\t'eslint',\n\t\t'import',\n\t\t'jest',\n\t\t'node',\n\t\t'oxc',\n\t\t'promise',\n\t\t'typescript',\n\t\t'unicorn',\n\t\t'vitest',\n\t],\n\tcategories: {\n\t\tcorrectness: 'error',\n\t\tpedantic: 'error',\n\t\tperf: 'error',\n\t\trestriction: 'error',\n\t\tstyle: 'error',\n\t\tsuspicious: 'error',\n\t},\n\tenv: {\n\t\tbrowser: true,\n\t\tnode: true,\n\t},\n\tsettings: {\n\t\tvitest: {\n\t\t\ttypecheck: true,\n\t\t},\n\t},\n\trules: {\n\t\t'eslint/accessor-pairs': ['error', { enforceForClassMembers: true }],\n\t\t'eslint/array-callback-return': ['error', { allowImplicit: true }],\n\t\t'eslint/arrow-body-style': 'off',\n\t\t'eslint/capitalized-comments': 'off',\n\t\t'eslint/func-names': 'off',\n\t\t'eslint/func-style': [\n\t\t\t'error',\n\t\t\t'declaration',\n\t\t\t{ allowArrowFunctions: true },\n\t\t],\n\t\t'eslint/grouped-accessor-pairs': ['error', 'getBeforeSet'],\n\t\t'eslint/id-length': 'off',\n\t\t'eslint/init-declarations': 'off',\n\t\t'eslint/max-lines': 'off',\n\t\t'eslint/max-lines-per-function': 'off',\n\t\t'eslint/max-params': 'off',\n\t\t'eslint/max-statements': 'off',\n\t\t'eslint/new-cap': 'off',\n\t\t'eslint/no-await-in-loop': 'off',\n\t\t'eslint/no-continue': 'off',\n\t\t'eslint/no-duplicate-imports': 'off',\n\t\t'eslint/no-else-return': ['error', { allowElseIf: false }],\n\t\t'eslint/no-empty': ['error', { allowEmptyCatch: true }],\n\t\t'eslint/no-magic-numbers': 'off',\n\t\t'eslint/no-return-assign': ['error', 'always'],\n\t\t'eslint/no-self-assign': ['error', { props: true }],\n\t\t'eslint/no-ternary': 'off',\n\t\t'eslint/no-undefined': 'off',\n\t\t'eslint/no-unsafe-negation': [\n\t\t\t'error',\n\t\t\t{ enforceForOrderingRelations: true },\n\t\t],\n\t\t'eslint/no-unsafe-optional-chaining': [\n\t\t\t'error',\n\t\t\t{ disallowArithmeticOperators: true },\n\t\t],\n\t\t'eslint/no-unused-expressions': ['error', { enforceForJSX: true }],\n\t\t'eslint/no-unused-vars': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\targsIgnorePattern: '^_',\n\t\t\t\tcaughtErrorsIgnorePattern: '^_',\n\t\t\t\tdestructuredArrayIgnorePattern: '^_',\n\t\t\t\tvarsIgnorePattern: '^_',\n\t\t\t},\n\t\t],\n\t\t'eslint/no-void': 'off',\n\t\t'eslint/prefer-destructuring': [\n\t\t\t'error',\n\t\t\t{ enforceForRenamedProperties: false },\n\t\t],\n\t\t'eslint/prefer-promise-reject-errors': 'off',\n\t\t'eslint/require-await': 'off',\n\t\t'eslint/sort-imports': 'off',\n\t\t'eslint/sort-keys': 'off',\n\t\t'eslint/valid-typeof': ['error', { requireStringLiterals: false }],\n\t\t'import/exports-last': 'off',\n\t\t'import/group-exports': 'off',\n\t\t'import/max-dependencies': 'off',\n\t\t'import/no-default-export': 'off',\n\t\t'import/no-named-export': 'off',\n\t\t'import/no-namespace': 'off',\n\t\t'import/no-nodejs-modules': 'off',\n\t\t'import/no-relative-parent-imports': 'off',\n\t\t'import/unambiguous': 'warn',\n\t\t'node/no-process-env': 'off',\n\t\t'oxc/no-async-await': 'off',\n\t\t'oxc/no-optional-chaining': 'off',\n\t\t'oxc/no-rest-spread-properties': 'off',\n\t\t'promise/avoid-new': 'off',\n\t\t'promise/prefer-await-to-callbacks': 'off',\n\t\t'typescript/array-type': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tdefault: 'array-simple',\n\t\t\t\treadonly: 'generic',\n\t\t\t},\n\t\t],\n\t\t'typescript/ban-ts-comment': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\t'ts-check': true,\n\t\t\t\t'ts-expect-error': false,\n\t\t\t\t'ts-ignore': true,\n\t\t\t\t'ts-nocheck': true,\n\t\t\t},\n\t\t],\n\t\t'typescript/consistent-type-definitions': ['error', 'type'],\n\t\t'typescript/consistent-type-imports': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tfixStyle: 'separate-type-imports',\n\t\t\t\tprefer: 'type-imports',\n\t\t\t},\n\t\t],\n\t\t'typescript/explicit-function-return-type': 'off',\n\t\t'typescript/no-confusing-void-expression': [\n\t\t\t'error',\n\t\t\t{ ignoreArrowShorthand: true },\n\t\t],\n\t\t'typescript/no-explicit-any': 'off',\n\t\t'typescript/no-misused-promises': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tchecksConditionals: true,\n\t\t\t\tchecksVoidReturn: false,\n\t\t\t},\n\t\t],\n\t\t'typescript/no-namespace': ['error', { allowDeclarations: true }],\n\t\t'typescript/no-non-null-assertion': 'off',\n\t\t'typescript/no-restricted-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\ttypes: {\n\t\t\t\t\t'[]': true,\n\t\t\t\t\t'null': true,\n\t\t\t\t\t'object': true,\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t'typescript/no-unsafe-type-assertion': 'off',\n\t\t'typescript/only-throw-error': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tallowThrowingAny: false,\n\t\t\t\tallowThrowingUnknown: true,\n\t\t\t},\n\t\t],\n\t\t'typescript/prefer-nullish-coalescing': [\n\t\t\t'error',\n\t\t\t{ ignoreConditionalTests: false },\n\t\t],\n\t\t'typescript/prefer-promise-reject-errors': 'off',\n\t\t'typescript/require-array-sort-compare': [\n\t\t\t'error',\n\t\t\t{ ignoreStringArrays: true },\n\t\t],\n\t\t'typescript/require-await': 'warn',\n\t\t'typescript/restrict-template-expressions': [\n\t\t\t'error',\n\t\t\t{ allowNumber: true },\n\t\t],\n\t\t'typescript/strict-boolean-expressions': 'off',\n\t\t'typescript/switch-exhaustiveness-check': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tallowDefaultCaseForExhaustiveSwitch: false,\n\t\t\t\tconsiderDefaultExhaustiveForUnions: true,\n\t\t\t\trequireDefaultForNonUnion: true,\n\t\t\t},\n\t\t],\n\t\t'typescript/unbound-method': 'off',\n\t\t'unicorn/no-array-callback-reference': 'off',\n\t\t'unicorn/no-empty-file': 'warn',\n\t\t'unicorn/no-null': 'off',\n\t\t'unicorn/no-single-promise-in-promise-methods': 'off',\n\t\t'unicorn/no-useless-undefined': 'off',\n\t\t'unicorn/prefer-bigint-literals': 'off',\n\t\t'vitest/consistent-test-filename': 'off',\n\t\t'vitest/require-hook': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'import/no-anonymous-default-export': ['error', { allowObject: true }],\n\t\t'import/unambiguous': 'off',\n\t\t'unicorn/no-empty-file': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'eslint/no-alert': 'off',\n\t\t'import/unambiguous': 'off',\n\t\t'promise/prefer-await-to-then': 'off',\n\t\t'typescript/ban-ts-comment': 'off',\n\t\t'typescript/no-confusing-void-expression': 'off',\n\t\t'typescript/no-empty-function': 'off',\n\t\t'typescript/no-extraneous-class': 'off',\n\t\t'typescript/no-unsafe-assignment': 'off',\n\t\t'typescript/no-unsafe-member-access': 'off',\n\t\t'unicorn/consistent-function-scoping': 'off',\n\t\t'unicorn/error-message': 'off',\n\t\t'unicorn/no-empty-file': 'off',\n\t\t'vitest/consistent-test-it': 'off',\n\t\t'vitest/max-expects': 'off',\n\t\t'vitest/no-alias-methods': 'off',\n\t\t'vitest/no-conditional-tests': 'off',\n\t\t'vitest/no-hooks': 'off',\n\t\t'vitest/prefer-called-once': 'off',\n\t\t'vitest/prefer-called-with': 'off',\n\t\t'vitest/prefer-lowercase-title': 'off',\n\t\t'vitest/prefer-spy-on': 'off',\n\t\t'vitest/prefer-to-be-falsy': 'off',\n\t\t'vitest/prefer-to-be-truthy': 'off',\n\t\t'vitest/require-top-level-describe': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'import/no-empty-named-blocks': 'off',\n\t\t'import/no-unassigned-import': 'off',\n\t\t'import/prefer-default-export': 'off',\n\t\t'import/unambiguous': 'off',\n\t\t'typescript/consistent-type-definitions': 'off',\n\t\t'typescript/no-empty-interface': 'off',\n\t\t'typescript/no-empty-object-type': 'off',\n\t\t'typescript/no-restricted-types': 'off',\n\t\t'unicorn/require-module-specifiers': 'off',\n\t},\n};\n\nexport default config;\n","import defineClone from 'rfdc';\n\nexport default defineClone({ circles: true });\n","/* oxlint-disable eslint/no-unsafe-member-access */\n\nimport type { OxlintConfig } from 'oxlint';\nimport clone from '../clone/index.ts';\n\nexport default function mergeConfig(\n\tbaseConfig: OxlintConfig,\n\textensionConfig: OxlintConfig\n): OxlintConfig {\n\tif (!(isObject(baseConfig) && isObject(extensionConfig))) {\n\t\tthrow new TypeError(\n\t\t\t'Standard Config error: expected config to be an object'\n\t\t);\n\t}\n\n\tconst result = clone(baseConfig);\n\n\tfor (const [key, value] of Object.entries(\n\t\tclone(extensionConfig)\n\t) as ReadonlyArray<[keyof OxlintConfig, unknown]>) {\n\t\tif (value === undefined || value === null) {\n\t\t\t/* oxlint-disable-next-line typescript/no-dynamic-delete */\n\t\t\tdelete result[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (result[key] === undefined) {\n\t\t\t(result as any)[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isArray(value) && isArray(result[key])) {\n\t\t\t(result as any)[key] = [...result[key], ...value];\n\t\t\tcontinue;\n\t\t}\n\n\t\t/* oxlint-disable-next-line typescript/no-misused-spread */\n\t\t(result as any)[key] = { ...result[key], ...value };\n\t}\n\n\treturn result;\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n\treturn Array.isArray(value);\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' && value !== null;\n}\n","import type { OxlintConfig } from 'oxlint';\nimport { defineConfig as oxlintDefineConfig } from 'oxlint';\nimport configBase from '../config-base/index.ts';\nimport configConfigFiles from '../config-config-files/index.ts';\nimport configTestFiles from '../config-test-files/index.ts';\nimport configTypeDefinitions from '../config-type-definitions/index.ts';\nimport mergeConfig from '../merge-config/index.ts';\n\nexport default function defineConfig(config: OxlintConfig = {}): OxlintConfig {\n\tconst baseConfig: OxlintConfig = {\n\t\t...configBase,\n\t\toverrides: [\n\t\t\t{\n\t\t\t\tfiles: ['**/*.d.{ts,cts,mts}'],\n\t\t\t\t...configTypeDefinitions,\n\t\t\t},\n\t\t\t{\n\t\t\t\tfiles: ['**/*.test.{ts,tsx,cts,mts}'],\n\t\t\t\t...configTestFiles,\n\t\t\t},\n\t\t\t{\n\t\t\t\tfiles: ['**/*.config.{ts,cts,mts}', '**/*.setup.{ts,cts,mts}'],\n\t\t\t\t...configConfigFiles,\n\t\t\t},\n\t\t],\n\t};\n\n\tconst extendedConfig = mergeConfig(baseConfig, config);\n\treturn oxlintDefineConfig(extendedConfig);\n}\n"],"mappings":";;;;AAEA,MAAM,SAA4B;CACjC,SAAS;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,YAAY;EACX,aAAa;EACb,UAAU;EACV,MAAM;EACN,aAAa;EACb,OAAO;EACP,YAAY;EACZ;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,UAAU,EACT,QAAQ,EACP,WAAW,MACX,EACD;CACD,OAAO;EACN,yBAAyB,CAAC,SAAS,EAAE,wBAAwB,MAAM,CAAC;EACpE,gCAAgC,CAAC,SAAS,EAAE,eAAe,MAAM,CAAC;EAClE,2BAA2B;EAC3B,+BAA+B;EAC/B,qBAAqB;EACrB,qBAAqB;GACpB;GACA;GACA,EAAE,qBAAqB,MAAM;GAC7B;EACD,iCAAiC,CAAC,SAAS,eAAe;EAC1D,oBAAoB;EACpB,4BAA4B;EAC5B,oBAAoB;EACpB,iCAAiC;EACjC,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,2BAA2B;EAC3B,sBAAsB;EACtB,+BAA+B;EAC/B,yBAAyB,CAAC,SAAS,EAAE,aAAa,OAAO,CAAC;EAC1D,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,MAAM,CAAC;EACvD,2BAA2B;EAC3B,2BAA2B,CAAC,SAAS,SAAS;EAC9C,yBAAyB,CAAC,SAAS,EAAE,OAAO,MAAM,CAAC;EACnD,qBAAqB;EACrB,uBAAuB;EACvB,6BAA6B,CAC5B,SACA,EAAE,6BAA6B,MAAM,CACrC;EACD,sCAAsC,CACrC,SACA,EAAE,6BAA6B,MAAM,CACrC;EACD,gCAAgC,CAAC,SAAS,EAAE,eAAe,MAAM,CAAC;EAClE,yBAAyB,CACxB,SACA;GACC,mBAAmB;GACnB,2BAA2B;GAC3B,gCAAgC;GAChC,mBAAmB;GACnB,CACD;EACD,kBAAkB;EAClB,+BAA+B,CAC9B,SACA,EAAE,6BAA6B,OAAO,CACtC;EACD,uCAAuC;EACvC,wBAAwB;EACxB,uBAAuB;EACvB,oBAAoB;EACpB,uBAAuB,CAAC,SAAS,EAAE,uBAAuB,OAAO,CAAC;EAClE,uBAAuB;EACvB,wBAAwB;EACxB,2BAA2B;EAC3B,4BAA4B;EAC5B,0BAA0B;EAC1B,uBAAuB;EACvB,4BAA4B;EAC5B,qCAAqC;EACrC,sBAAsB;EACtB,uBAAuB;EACvB,sBAAsB;EACtB,4BAA4B;EAC5B,iCAAiC;EACjC,qBAAqB;EACrB,qCAAqC;EACrC,yBAAyB,CACxB,SACA;GACC,SAAS;GACT,UAAU;GACV,CACD;EACD,6BAA6B,CAC5B,SACA;GACC,YAAY;GACZ,mBAAmB;GACnB,aAAa;GACb,cAAc;GACd,CACD;EACD,0CAA0C,CAAC,SAAS,OAAO;EAC3D,sCAAsC,CACrC,SACA;GACC,UAAU;GACV,QAAQ;GACR,CACD;EACD,4CAA4C;EAC5C,2CAA2C,CAC1C,SACA,EAAE,sBAAsB,MAAM,CAC9B;EACD,8BAA8B;EAC9B,kCAAkC,CACjC,SACA;GACC,oBAAoB;GACpB,kBAAkB;GAClB,CACD;EACD,2BAA2B,CAAC,SAAS,EAAE,mBAAmB,MAAM,CAAC;EACjE,oCAAoC;EACpC,kCAAkC,CACjC,SACA,EACC,OAAO;GACN,MAAM;GACN,QAAQ;GACR,UAAU;GACV,EACD,CACD;EACD,uCAAuC;EACvC,+BAA+B,CAC9B,SACA;GACC,kBAAkB;GAClB,sBAAsB;GACtB,CACD;EACD,wCAAwC,CACvC,SACA,EAAE,wBAAwB,OAAO,CACjC;EACD,2CAA2C;EAC3C,yCAAyC,CACxC,SACA,EAAE,oBAAoB,MAAM,CAC5B;EACD,4BAA4B;EAC5B,4CAA4C,CAC3C,SACA,EAAE,aAAa,MAAM,CACrB;EACD,yCAAyC;EACzC,0CAA0C,CACzC,SACA;GACC,qCAAqC;GACrC,oCAAoC;GACpC,2BAA2B;GAC3B,CACD;EACD,6BAA6B;EAC7B,uCAAuC;EACvC,yBAAyB;EACzB,mBAAmB;EACnB,gDAAgD;EAChD,gCAAgC;EAChC,kCAAkC;EAClC,mCAAmC;EACnC,uBAAuB;EACvB;CACD;;;;AC/LD,MAAMA,WAAoC,EACzC,OAAO;CACN,sCAAsC,CAAC,SAAS,EAAE,aAAa,MAAM,CAAC;CACtE,sBAAsB;CACtB,yBAAyB;CACzB,EACD;;;;ACND,MAAMC,WAAoC,EACzC,OAAO;CACN,mBAAmB;CACnB,sBAAsB;CACtB,gCAAgC;CAChC,6BAA6B;CAC7B,2CAA2C;CAC3C,gCAAgC;CAChC,kCAAkC;CAClC,mCAAmC;CACnC,sCAAsC;CACtC,uCAAuC;CACvC,yBAAyB;CACzB,yBAAyB;CACzB,6BAA6B;CAC7B,sBAAsB;CACtB,2BAA2B;CAC3B,+BAA+B;CAC/B,mBAAmB;CACnB,6BAA6B;CAC7B,6BAA6B;CAC7B,iCAAiC;CACjC,wBAAwB;CACxB,6BAA6B;CAC7B,8BAA8B;CAC9B,qCAAqC;CACrC,EACD;;;;AC3BD,MAAMC,WAAoC,EACzC,OAAO;CACN,gCAAgC;CAChC,+BAA+B;CAC/B,gCAAgC;CAChC,sBAAsB;CACtB,0CAA0C;CAC1C,iCAAiC;CACjC,mCAAmC;CACnC,kCAAkC;CAClC,qCAAqC;CACrC,EACD;;;;ACZD,oBAAe,YAAY,EAAE,SAAS,MAAM,CAAC;;;;ACG7C,SAAwB,YACvB,YACA,iBACe;AACf,KAAI,EAAE,SAAS,WAAW,IAAI,SAAS,gBAAgB,EACtD,OAAM,IAAI,UACT,yDACA;CAGF,MAAM,SAASC,cAAM,WAAW;AAEhC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QACjCA,cAAM,gBAAgB,CACtB,EAAkD;AAClD,MAAI,UAAU,UAAa,UAAU,MAAM;AAE1C,UAAO,OAAO;AACd;;AAGD,MAAI,OAAO,SAAS,QAAW;AAC9B,GAAC,OAAe,OAAO;AACvB;;AAGD,MAAI,QAAQ,MAAM,IAAI,QAAQ,OAAO,KAAK,EAAE;AAC3C,GAAC,OAAe,OAAO,CAAC,GAAG,OAAO,MAAM,GAAG,MAAM;AACjD;;AAID,EAAC,OAAe,OAAO;GAAE,GAAG,OAAO;GAAM,GAAG;GAAO;;AAGpD,QAAO;;AAGR,SAAS,QAAQ,OAAoC;AACpD,QAAO,MAAM,QAAQ,MAAM;;AAG5B,SAAS,SAAS,OAAkD;AACnE,QAAO,OAAO,UAAU,YAAY,UAAU;;;;;ACxC/C,SAAwB,aAAa,WAAuB,EAAE,EAAgB;AAoB7E,QAAOC,eADgB,YAlBU;EAChC,GAAGC;EACH,WAAW;GACV;IACC,OAAO,CAAC,sBAAsB;IAC9B,GAAGC;IACH;GACD;IACC,OAAO,CAAC,6BAA6B;IACrC,GAAGC;IACH;GACD;IACC,OAAO,CAAC,4BAA4B,0BAA0B;IAC9D,GAAGC;IACH;GACD;EACD,EAE8CC,SAAO,CACb"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["config","config","config","config","clone","config","oxlintDefineConfig","configBase","configReact","configTypeDefinitions","configTestFiles","configConfigFiles"],"sources":["../src/config-base/index.ts","../src/config-config-files/index.ts","../src/config-react/index.ts","../src/config-test-files/index.ts","../src/config-type-definitions/index.ts","../src/clone/index.ts","../src/merge-config/index.ts","../src/define-config/index.ts"],"sourcesContent":["import type { LinterConfigEntry } from '../types/index.js';\n\nconst config: LinterConfigEntry = {\n\tplugins: [\n\t\t'eslint',\n\t\t'import',\n\t\t'jest',\n\t\t'node',\n\t\t'oxc',\n\t\t'promise',\n\t\t'typescript',\n\t\t'unicorn',\n\t\t'vitest',\n\t],\n\tcategories: {\n\t\tcorrectness: 'error',\n\t\tpedantic: 'error',\n\t\tperf: 'error',\n\t\trestriction: 'error',\n\t\tstyle: 'error',\n\t\tsuspicious: 'error',\n\t},\n\tenv: {\n\t\tbrowser: true,\n\t\tnode: true,\n\t},\n\tsettings: {\n\t\tvitest: {\n\t\t\ttypecheck: true,\n\t\t},\n\t},\n\trules: {\n\t\t'eslint/accessor-pairs': ['error', { enforceForClassMembers: true }],\n\t\t'eslint/array-callback-return': ['error', { allowImplicit: true }],\n\t\t'eslint/arrow-body-style': 'off',\n\t\t'eslint/capitalized-comments': 'off',\n\t\t'eslint/func-names': 'off',\n\t\t'eslint/func-style': [\n\t\t\t'error',\n\t\t\t'declaration',\n\t\t\t{ allowArrowFunctions: true },\n\t\t],\n\t\t'eslint/grouped-accessor-pairs': ['error', 'getBeforeSet'],\n\t\t'eslint/id-length': 'off',\n\t\t'eslint/init-declarations': 'off',\n\t\t'eslint/max-depth': 'off',\n\t\t'eslint/max-lines': 'off',\n\t\t'eslint/max-lines-per-function': 'off',\n\t\t'eslint/max-params': 'off',\n\t\t'eslint/max-statements': 'off',\n\t\t'eslint/new-cap': 'off',\n\t\t'eslint/no-await-in-loop': 'off',\n\t\t'eslint/no-continue': 'off',\n\t\t'eslint/no-duplicate-imports': 'off',\n\t\t'eslint/no-else-return': ['error', { allowElseIf: false }],\n\t\t'eslint/no-empty': ['error', { allowEmptyCatch: true }],\n\t\t'eslint/no-magic-numbers': 'off',\n\t\t'eslint/no-return-assign': ['error', 'always'],\n\t\t'eslint/no-self-assign': ['error', { props: true }],\n\t\t'eslint/no-ternary': 'off',\n\t\t'eslint/no-undefined': 'off',\n\t\t'eslint/no-unsafe-negation': [\n\t\t\t'error',\n\t\t\t{ enforceForOrderingRelations: true },\n\t\t],\n\t\t'eslint/no-unsafe-optional-chaining': [\n\t\t\t'error',\n\t\t\t{ disallowArithmeticOperators: true },\n\t\t],\n\t\t'eslint/no-unused-expressions': ['error', { enforceForJSX: true }],\n\t\t'eslint/no-unused-vars': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\targsIgnorePattern: '^_',\n\t\t\t\tcaughtErrorsIgnorePattern: '^_',\n\t\t\t\tdestructuredArrayIgnorePattern: '^_',\n\t\t\t\tvarsIgnorePattern: '^_',\n\t\t\t},\n\t\t],\n\t\t'eslint/no-void': 'off',\n\t\t'eslint/prefer-destructuring': [\n\t\t\t'error',\n\t\t\t{ enforceForRenamedProperties: false },\n\t\t],\n\t\t'eslint/prefer-promise-reject-errors': 'off',\n\t\t'eslint/require-await': 'off',\n\t\t'eslint/sort-imports': 'off',\n\t\t'eslint/sort-keys': 'off',\n\t\t'eslint/valid-typeof': ['error', { requireStringLiterals: false }],\n\t\t'import/exports-last': 'off',\n\t\t'import/group-exports': 'off',\n\t\t'import/max-dependencies': 'off',\n\t\t'import/no-default-export': 'off',\n\t\t'import/no-named-export': 'off',\n\t\t'import/no-namespace': 'off',\n\t\t'import/no-nodejs-modules': 'off',\n\t\t'import/no-relative-parent-imports': 'off',\n\t\t'import/unambiguous': 'warn',\n\t\t'node/no-process-env': 'off',\n\t\t'oxc/no-async-await': 'off',\n\t\t'oxc/no-optional-chaining': 'off',\n\t\t'oxc/no-rest-spread-properties': 'off',\n\t\t'promise/avoid-new': 'off',\n\t\t'promise/prefer-await-to-callbacks': 'off',\n\t\t'typescript/array-type': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tdefault: 'array-simple',\n\t\t\t\treadonly: 'generic',\n\t\t\t},\n\t\t],\n\t\t'typescript/ban-ts-comment': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\t'ts-check': true,\n\t\t\t\t'ts-expect-error': false,\n\t\t\t\t'ts-ignore': true,\n\t\t\t\t'ts-nocheck': true,\n\t\t\t},\n\t\t],\n\t\t'typescript/consistent-type-definitions': ['error', 'type'],\n\t\t'typescript/consistent-type-imports': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tfixStyle: 'separate-type-imports',\n\t\t\t\tprefer: 'type-imports',\n\t\t\t},\n\t\t],\n\t\t'typescript/explicit-function-return-type': 'off',\n\t\t'typescript/no-confusing-void-expression': [\n\t\t\t'error',\n\t\t\t{ ignoreArrowShorthand: true },\n\t\t],\n\t\t'typescript/no-explicit-any': 'off',\n\t\t'typescript/no-misused-promises': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tchecksConditionals: true,\n\t\t\t\tchecksVoidReturn: false,\n\t\t\t},\n\t\t],\n\t\t'typescript/no-namespace': ['error', { allowDeclarations: true }],\n\t\t'typescript/no-non-null-assertion': 'off',\n\t\t'typescript/no-restricted-types': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\ttypes: {\n\t\t\t\t\t'[]': true,\n\t\t\t\t\t'null': true,\n\t\t\t\t\t'object': true,\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t'typescript/no-unsafe-type-assertion': 'off',\n\t\t'typescript/only-throw-error': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tallowThrowingAny: false,\n\t\t\t\tallowThrowingUnknown: true,\n\t\t\t},\n\t\t],\n\t\t'typescript/prefer-nullish-coalescing': [\n\t\t\t'error',\n\t\t\t{ ignoreConditionalTests: false },\n\t\t],\n\t\t'typescript/prefer-promise-reject-errors': 'off',\n\t\t'typescript/require-array-sort-compare': [\n\t\t\t'error',\n\t\t\t{ ignoreStringArrays: true },\n\t\t],\n\t\t'typescript/require-await': 'warn',\n\t\t'typescript/restrict-template-expressions': [\n\t\t\t'error',\n\t\t\t{ allowNumber: true },\n\t\t],\n\t\t'typescript/strict-boolean-expressions': 'off',\n\t\t'typescript/switch-exhaustiveness-check': [\n\t\t\t'error',\n\t\t\t{\n\t\t\t\tallowDefaultCaseForExhaustiveSwitch: false,\n\t\t\t\tconsiderDefaultExhaustiveForUnions: true,\n\t\t\t\trequireDefaultForNonUnion: true,\n\t\t\t},\n\t\t],\n\t\t'typescript/unbound-method': 'off',\n\t\t'unicorn/no-array-callback-reference': 'off',\n\t\t'unicorn/no-empty-file': 'warn',\n\t\t'unicorn/no-null': 'off',\n\t\t'unicorn/no-single-promise-in-promise-methods': 'off',\n\t\t'unicorn/no-useless-undefined': 'off',\n\t\t'unicorn/prefer-bigint-literals': 'off',\n\t\t'vitest/consistent-test-filename': 'off',\n\t\t'vitest/require-hook': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'import/no-anonymous-default-export': ['error', { allowObject: true }],\n\t\t'import/unambiguous': 'off',\n\t\t'unicorn/no-empty-file': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\tplugins: ['jsx-a11y', 'react', 'react-perf'],\n\trules: {\n\t\t'react/jsx-filename-extension': ['error', { extensions: ['.tsx'] }],\n\t\t'react/jsx-max-depth': 'off',\n\t\t'react/jsx-no-target-blank': [\n\t\t\t'error',\n\t\t\t{ warnOnSpreadAttributes: true },\n\t\t],\n\t\t'react/jsx-props-no-spreading': 'off',\n\t\t'react/no-multi-comp': 'off',\n\t\t'react/only-export-components': 'off',\n\t\t'react/react-in-jsx-scope': 'off',\n\t\t'react_perf/jsx-no-jsx-as-prop': 'off',\n\t\t'react_perf/jsx-no-new-array-as-prop': 'off',\n\t\t'react_perf/jsx-no-new-function-as-prop': 'off',\n\t\t'react_perf/jsx-no-new-object-as-prop': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'eslint/no-alert': 'off',\n\t\t'eslint/no-promise-executor-return': 'off',\n\t\t'import/unambiguous': 'off',\n\t\t'jsx-a11y/anchor-is-valid': 'off',\n\t\t'promise/prefer-await-to-then': 'off',\n\t\t'react/jsx-no-useless-fragment': 'off',\n\t\t'react/no-children-prop': 'off',\n\t\t'typescript/ban-ts-comment': 'off',\n\t\t'typescript/no-confusing-void-expression': 'off',\n\t\t'typescript/no-empty-function': 'off',\n\t\t'typescript/no-extraneous-class': 'off',\n\t\t'typescript/no-unsafe-assignment': 'off',\n\t\t'typescript/no-unsafe-member-access': 'off',\n\t\t'unicorn/consistent-function-scoping': 'off',\n\t\t'unicorn/error-message': 'off',\n\t\t'unicorn/no-empty-file': 'off',\n\t\t'vitest/consistent-test-it': 'off',\n\t\t'vitest/max-expects': 'off',\n\t\t'vitest/no-alias-methods': 'off',\n\t\t'vitest/no-conditional-tests': 'off',\n\t\t'vitest/no-hooks': 'off',\n\t\t'vitest/prefer-called-once': 'off',\n\t\t'vitest/prefer-called-with': 'off',\n\t\t'vitest/prefer-lowercase-title': 'off',\n\t\t'vitest/prefer-spy-on': 'off',\n\t\t'vitest/prefer-to-be-falsy': 'off',\n\t\t'vitest/prefer-to-be-truthy': 'off',\n\t\t'vitest/require-top-level-describe': 'off',\n\t},\n};\n\nexport default config;\n","import type { LinterConfigOverrideEntry } from '../types/index.d.ts';\n\nconst config: LinterConfigOverrideEntry = {\n\trules: {\n\t\t'import/no-empty-named-blocks': 'off',\n\t\t'import/no-unassigned-import': 'off',\n\t\t'import/prefer-default-export': 'off',\n\t\t'import/unambiguous': 'off',\n\t\t'typescript/consistent-type-definitions': 'off',\n\t\t'typescript/no-empty-interface': 'off',\n\t\t'typescript/no-empty-object-type': 'off',\n\t\t'typescript/no-restricted-types': 'off',\n\t\t'unicorn/require-module-specifiers': 'off',\n\t},\n};\n\nexport default config;\n","import defineClone from 'rfdc';\n\nexport default defineClone({ circles: true });\n","/* oxlint-disable eslint/no-unsafe-member-access */\n\nimport type { OxlintConfig } from 'oxlint';\nimport type {\n\tLinterConfigEntry,\n\tLinterConfigOverrideEntry,\n} from '../types/index.js';\nimport clone from '../clone/index.ts';\n\nexport default function mergeConfig(\n\tbaseConfig: OxlintConfig,\n\textensionConfig:\n\t\t| LinterConfigEntry\n\t\t| LinterConfigOverrideEntry\n\t\t| OxlintConfig\n): OxlintConfig {\n\tif (!(isObject(baseConfig) && isObject(extensionConfig))) {\n\t\tthrow new TypeError(\n\t\t\t'Standard Config error: expected config to be an object'\n\t\t);\n\t}\n\n\tconst result = clone(baseConfig);\n\n\tfor (const [key, value] of Object.entries(\n\t\tclone(extensionConfig)\n\t) as ReadonlyArray<[keyof OxlintConfig, unknown]>) {\n\t\tif (value === undefined || value === null) {\n\t\t\t/* oxlint-disable-next-line typescript/no-dynamic-delete */\n\t\t\tdelete result[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (result[key] === undefined) {\n\t\t\t(result as any)[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isArray(value) && isArray(result[key])) {\n\t\t\tconst values = [...new Set([...result[key], ...value])];\n\n\t\t\t(result as any)[key] =\n\t\t\t\t/* v8 ignore next -- @preserve */\n\t\t\t\tkey === 'plugins'\n\t\t\t\t\t? (values as ReadonlyArray<string>).toSorted()\n\t\t\t\t\t: values;\n\n\t\t\tcontinue;\n\t\t}\n\n\t\t/* oxlint-disable-next-line typescript/no-misused-spread */\n\t\t(result as any)[key] = { ...result[key], ...value };\n\t}\n\n\treturn result;\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n\treturn Array.isArray(value);\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' && value !== null;\n}\n","import type { OxlintConfig } from 'oxlint';\nimport type { StandardConfig } from '../types/index.js';\nimport { defineConfig as oxlintDefineConfig } from 'oxlint';\nimport configBase from '../config-base/index.ts';\nimport configConfigFiles from '../config-config-files/index.ts';\nimport configReact from '../config-react/index.ts';\nimport configTestFiles from '../config-test-files/index.ts';\nimport configTypeDefinitions from '../config-type-definitions/index.ts';\nimport mergeConfig from '../merge-config/index.ts';\n\nexport default function defineConfig(\n\tconfig: StandardConfig = {}\n): OxlintConfig {\n\tconst { react, ...extensionConfig } = config;\n\n\tconst baseConfig: OxlintConfig = {\n\t\t...(react ? mergeConfig(configBase, configReact) : configBase),\n\t\toverrides: [\n\t\t\t{\n\t\t\t\tfiles: ['**/*.d.{ts,cts,mts}'],\n\t\t\t\t...configTypeDefinitions,\n\t\t\t},\n\t\t\t{\n\t\t\t\tfiles: ['**/*.test.{ts,tsx,cts,mts}'],\n\t\t\t\t...configTestFiles,\n\t\t\t},\n\t\t\t{\n\t\t\t\tfiles: ['**/*.config.{ts,cts,mts}', '**/*.setup.{ts,cts,mts}'],\n\t\t\t\t...configConfigFiles,\n\t\t\t},\n\t\t],\n\t};\n\n\tconst extendedConfig = mergeConfig(baseConfig, extensionConfig);\n\treturn oxlintDefineConfig(extendedConfig);\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standard-config/oxlint",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Curated Oxlint config with sensible defaults",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"oxlint",
|
|
21
21
|
"oxlint-config",
|
|
22
22
|
"oxlint-tsgolint",
|
|
23
|
+
"react",
|
|
23
24
|
"standard-config",
|
|
24
25
|
"type-aware",
|
|
25
26
|
"typescript",
|
|
@@ -48,15 +49,15 @@
|
|
|
48
49
|
}
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
|
-
"@standard-config/eslint": "1.3.
|
|
52
|
-
"@standard-config/prettier": "1.
|
|
52
|
+
"@standard-config/eslint": "1.3.3",
|
|
53
|
+
"@standard-config/prettier": "1.9.1",
|
|
53
54
|
"@standard-config/tsconfig": "2.0.2",
|
|
54
55
|
"@vitest/coverage-v8": "4.0.18",
|
|
55
56
|
"eslint": "9.39.2",
|
|
56
57
|
"husky": "9.1.7",
|
|
57
58
|
"jiti": "2.6.1",
|
|
58
59
|
"oxlint": "1.43.0",
|
|
59
|
-
"oxlint-tsgolint": "0.11.
|
|
60
|
+
"oxlint-tsgolint": "0.11.5",
|
|
60
61
|
"prettier": "3.8.1",
|
|
61
62
|
"publint": "0.3.17",
|
|
62
63
|
"tsdown": "0.20.3",
|