@oxlint/migrate 1.73.0 → 1.76.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 +3 -3
- package/dist/bin/oxlint-migrate.mjs +4 -3
- package/dist/src/index.d.mts +264 -21
- package/dist/src/index.mjs +1 -1
- package/dist/{src-aj7n0D2s.mjs → src-CMaVigSj.mjs} +61 -30
- package/package.json +15 -17
package/README.md
CHANGED
|
@@ -116,10 +116,10 @@ The JS Plugins API supports almost all ESLint v9+ plugins for linting JS/TS/JSX/
|
|
|
116
116
|
|
|
117
117
|
For example, if you currently use `eslint-plugin-svelte`, only some of its rules will work via JS Plugin, as Oxlint does not yet fully support custom file formats like `.svelte`. This means that Oxlint will only be able to lint the script blocks in your `.svelte` files, and not the template blocks where many of the `eslint-plugin-svelte` rules apply.
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
# [Sponsored By](https://oxc.rs/sponsor)
|
|
120
120
|
|
|
121
121
|
<p align="center">
|
|
122
|
-
<a href="https://
|
|
123
|
-
<img src="https://raw.githubusercontent.com/
|
|
122
|
+
<a href="https://oxc.rs/sponsor">
|
|
123
|
+
<img src="https://raw.githubusercontent.com/oxc-project/sponsors/main/sponsors.svg" alt="Our sponsors" />
|
|
124
124
|
</a>
|
|
125
125
|
</p>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as nurseryRules, i as buildUnsupportedRuleExplanations, n as preFixForJsPlugins, o as rules_exports, r as isOffValue, s as normalizeRuleToCanonical, t as main } from "../src-
|
|
2
|
+
import { a as nurseryRules, i as buildUnsupportedRuleExplanations, n as preFixForJsPlugins, o as rules_exports, r as isOffValue, s as normalizeRuleToCanonical, t as main } from "../src-CMaVigSj.mjs";
|
|
3
3
|
import { program } from "commander";
|
|
4
4
|
import { existsSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
@@ -30,7 +30,7 @@ const loadESLintConfig = async (filePath) => {
|
|
|
30
30
|
};
|
|
31
31
|
//#endregion
|
|
32
32
|
//#region package.json
|
|
33
|
-
var version = "1.
|
|
33
|
+
var version = "1.76.0";
|
|
34
34
|
//#endregion
|
|
35
35
|
//#region src/walker/comments/replaceRuleDirectiveComment.ts
|
|
36
36
|
const allRulesSet = new Set(Object.values(rules_exports).flat());
|
|
@@ -425,7 +425,8 @@ const stripJsoncFeatures = (text) => text.replace(/\/\/.*$/gm, "").replace(/\/\*
|
|
|
425
425
|
* type-aware linting.
|
|
426
426
|
*/
|
|
427
427
|
const warnIfTsconfigHasBaseUrl = (reporter) => {
|
|
428
|
-
const
|
|
428
|
+
const tsconfigPath = path.join(cwd, "tsconfig.json");
|
|
429
|
+
const content = getFileContent(tsconfigPath);
|
|
429
430
|
if (content === void 0) return;
|
|
430
431
|
try {
|
|
431
432
|
const tsconfig = JSON.parse(stripJsoncFeatures(content));
|
package/dist/src/index.d.mts
CHANGED
|
@@ -4,7 +4,13 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* What to enforce for `/// <reference types="..." />` references.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* What to enforce for `/// <reference path="..." />` references.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* What to enforce for `/// <reference types="..." />` references.
|
|
12
|
+
*/
|
|
13
|
+
//#region node_modules/.pnpm/oxlint@1.76.0_oxlint-tsgolint@0.24.0/node_modules/oxlint/dist/index.d.ts
|
|
8
14
|
//#region src-js/package/config.generated.d.ts
|
|
9
15
|
type AllowWarnDeny = ("allow" | "off" | "warn" | "error" | "deny") | number;
|
|
10
16
|
type GlobalValue = ("readonly" | "writable" | "off") | undefined;
|
|
@@ -70,7 +76,7 @@ type FuncNamesConfigType = "always" | "as-needed" | "never";
|
|
|
70
76
|
type Style = "expression" | "declaration";
|
|
71
77
|
type NamedExports = "ignore" | "expression" | "declaration";
|
|
72
78
|
type PairOrder = "anyOrder" | "getBeforeSet" | "setBeforeGet";
|
|
73
|
-
type Mode = "prefer-top-level" | "prefer-inline";
|
|
79
|
+
type Mode = "prefer-top-level" | "prefer-inline" | "prefer-top-level-if-only-type-imports";
|
|
74
80
|
/**
|
|
75
81
|
* Extension rule configuration; Copy to avoid extra indirection.
|
|
76
82
|
*/
|
|
@@ -89,8 +95,8 @@ type MaxDependenciesConfigJson = number | MaxDependenciesConfig;
|
|
|
89
95
|
type Target = "single" | "any";
|
|
90
96
|
type TestCaseName = "it" | "test";
|
|
91
97
|
type JestFnType = "hook" | "describe" | "test" | "expect" | "jest" | "unknown";
|
|
92
|
-
type DummyRule = AllowWarnDeny | [AllowWarnDeny, ...unknown[]];
|
|
93
98
|
type SnapshotHintMode = "always" | "multi";
|
|
99
|
+
type DummyRule = AllowWarnDeny | [AllowWarnDeny, ...unknown[]];
|
|
94
100
|
type AltTextElements = "img" | "object" | "area" | 'input[type="image"]';
|
|
95
101
|
type AnchorIsValidAspect = "noHref" | "invalidHref" | "preferButton";
|
|
96
102
|
type Assert = "htmlFor" | "nesting" | "both" | "either";
|
|
@@ -115,7 +121,10 @@ type AllowKind = "functions" | "arrowFunctions" | "generatorFunctions" | "method
|
|
|
115
121
|
*/
|
|
116
122
|
type NoInnerDeclarationsConfig = "functions" | "both";
|
|
117
123
|
type BlockScopedFunctions = "allow" | "disallow";
|
|
124
|
+
type Namespaces = "allow" | "disallow";
|
|
118
125
|
type NoMagicNumbersNumber = number | string;
|
|
126
|
+
type NoRestrictedGlobalsConfigEnum = string | RestrictedGlobal | NoRestrictedGlobalsObjectConfig;
|
|
127
|
+
type GlobalNameOrObject = string | RestrictedGlobal;
|
|
119
128
|
type NoRestrictedImportsConfigEnum = string | RestrictedPath | NoRestrictedImportsConfig;
|
|
120
129
|
type PossiblePaths = string | RestrictedPath;
|
|
121
130
|
type PossiblePatterns = string | RestrictedPattern;
|
|
@@ -138,6 +147,7 @@ type Location = "start" | "anywhere";
|
|
|
138
147
|
* The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`.
|
|
139
148
|
*/
|
|
140
149
|
type CallbackReturn = string[];
|
|
150
|
+
type ExportsStyleMode = "module.exports" | "exports";
|
|
141
151
|
/**
|
|
142
152
|
* The rule takes a single string option: the name of the error parameter.
|
|
143
153
|
*
|
|
@@ -180,6 +190,10 @@ type ForbidItem2 = string | {
|
|
|
180
190
|
*/
|
|
181
191
|
message?: string;
|
|
182
192
|
};
|
|
193
|
+
type NamedComponents = NamedComponentStyle | NamedComponentStyle[];
|
|
194
|
+
type NamedComponentStyle = "function-declaration" | "arrow-function" | "function-expression";
|
|
195
|
+
type UnnamedComponents = UnnamedComponentStyle | UnnamedComponentStyle[];
|
|
196
|
+
type UnnamedComponentStyle = "arrow-function" | "function-expression";
|
|
183
197
|
type EnforceBooleanAttribute = "always" | "never";
|
|
184
198
|
type JsxCurlyBracePresenceConfig = JsxCurlyBracePresenceMode | JsxCurlyBracePresence;
|
|
185
199
|
type JsxCurlyBracePresenceMode = "always" | "never" | "ignore";
|
|
@@ -472,9 +486,23 @@ interface Oxlintrc$1 {
|
|
|
472
486
|
*/
|
|
473
487
|
env?: OxlintEnv;
|
|
474
488
|
/**
|
|
475
|
-
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
489
|
+
* Configurations that this configuration file extends (inherits from).
|
|
490
|
+
*
|
|
491
|
+
* In `.oxlintrc.json`, `extends` has type `string[]`. Each string is a path to a configuration
|
|
492
|
+
* file, resolved relative to the location of the configuration file that contains the
|
|
493
|
+
* `extends` property.
|
|
494
|
+
*
|
|
495
|
+
* In `oxlint.config.ts`, `extends` has type `OxlintConfig[]`. Import each configuration and
|
|
496
|
+
* pass the configuration object directly:
|
|
497
|
+
*
|
|
498
|
+
* ```ts
|
|
499
|
+
* import { defineConfig } from "oxlint";
|
|
500
|
+
* import baseConfig from "./base-config.ts";
|
|
501
|
+
*
|
|
502
|
+
* export default defineConfig({ extends: [baseConfig] });
|
|
503
|
+
* ```
|
|
504
|
+
*
|
|
505
|
+
* Configurations are merged from the first to the last, with the last configuration
|
|
478
506
|
* overriding the previous ones.
|
|
479
507
|
*/
|
|
480
508
|
extends?: string[];
|
|
@@ -483,7 +511,10 @@ interface Oxlintrc$1 {
|
|
|
483
511
|
*/
|
|
484
512
|
globals?: OxlintGlobals;
|
|
485
513
|
/**
|
|
486
|
-
* Globs to ignore during linting.
|
|
514
|
+
* Globs to ignore during linting. Patterns use gitignore-style matching,
|
|
515
|
+
* rooted at the directory containing the configuration file.
|
|
516
|
+
* Files outside that directory cannot be matched; patterns containing `..`
|
|
517
|
+
* are rejected as a configuration error.
|
|
487
518
|
*/
|
|
488
519
|
ignorePatterns?: string[];
|
|
489
520
|
/**
|
|
@@ -822,6 +853,7 @@ interface DummyRuleMap {
|
|
|
822
853
|
"getter-return"?: RuleNoConfig | [AllowWarnDeny, GetterReturn];
|
|
823
854
|
"grouped-accessor-pairs"?: RuleNoConfig | [AllowWarnDeny, PairOrder] | [AllowWarnDeny, PairOrder, GroupedAccessorPairsConfig];
|
|
824
855
|
"guard-for-in"?: RuleNoConfig;
|
|
856
|
+
"id-denylist"?: RuleNoConfig | [AllowWarnDeny, string, ...string[]];
|
|
825
857
|
"id-length"?: RuleNoConfig | [AllowWarnDeny, IdLengthConfig];
|
|
826
858
|
"id-match"?: RuleNoConfig | [AllowWarnDeny, string] | [AllowWarnDeny, string, IdMatchOptions];
|
|
827
859
|
"import/consistent-type-specifier-style"?: RuleNoConfig | [AllowWarnDeny, Mode];
|
|
@@ -899,7 +931,7 @@ interface DummyRuleMap {
|
|
|
899
931
|
"jest/prefer-hooks-on-top"?: RuleNoConfig;
|
|
900
932
|
"jest/prefer-importing-jest-globals"?: RuleNoConfig | [AllowWarnDeny, PreferImportingJestGlobalsConfig];
|
|
901
933
|
"jest/prefer-jest-mocked"?: RuleNoConfig;
|
|
902
|
-
"jest/prefer-lowercase-title"?:
|
|
934
|
+
"jest/prefer-lowercase-title"?: RuleNoConfig | [AllowWarnDeny, PreferLowercaseTitleConfig];
|
|
903
935
|
"jest/prefer-mock-promise-shorthand"?: RuleNoConfig;
|
|
904
936
|
"jest/prefer-mock-return-shorthand"?: RuleNoConfig;
|
|
905
937
|
"jest/prefer-snapshot-hint"?: RuleNoConfig | [AllowWarnDeny, SnapshotHintMode];
|
|
@@ -924,7 +956,7 @@ interface DummyRuleMap {
|
|
|
924
956
|
"jsdoc/empty-tags"?: RuleNoConfig | [AllowWarnDeny, EmptyTagsConfig];
|
|
925
957
|
"jsdoc/implements-on-classes"?: RuleNoConfig;
|
|
926
958
|
"jsdoc/no-defaults"?: RuleNoConfig | [AllowWarnDeny, NoDefaultsConfig];
|
|
927
|
-
"jsdoc/require-param"?:
|
|
959
|
+
"jsdoc/require-param"?: RuleNoConfig | [AllowWarnDeny, RequireParamConfig];
|
|
928
960
|
"jsdoc/require-param-description"?: RuleNoConfig | [AllowWarnDeny, RequireParamDescriptionConfig];
|
|
929
961
|
"jsdoc/require-param-name"?: RuleNoConfig;
|
|
930
962
|
"jsdoc/require-param-type"?: RuleNoConfig | [AllowWarnDeny, RequireParamTypeConfig];
|
|
@@ -1083,7 +1115,7 @@ interface DummyRuleMap {
|
|
|
1083
1115
|
"no-redeclare"?: RuleNoConfig | [AllowWarnDeny, NoRedeclare];
|
|
1084
1116
|
"no-regex-spaces"?: RuleNoConfig;
|
|
1085
1117
|
"no-restricted-exports"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedExportsConfig];
|
|
1086
|
-
"no-restricted-globals"?:
|
|
1118
|
+
"no-restricted-globals"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedGlobalsConfigEnum, ...NoRestrictedGlobalsConfigEnum[]];
|
|
1087
1119
|
"no-restricted-imports"?: RuleNoConfig | [AllowWarnDeny, NoRestrictedImportsConfigEnum, ...NoRestrictedImportsConfigEnum[]];
|
|
1088
1120
|
"no-restricted-properties"?: RuleNoConfig | [AllowWarnDeny, PropertyDetails, ...PropertyDetails[]];
|
|
1089
1121
|
"no-return-assign"?: RuleNoConfig | [AllowWarnDeny, NoReturnAssignMode];
|
|
@@ -1131,6 +1163,7 @@ interface DummyRuleMap {
|
|
|
1131
1163
|
"no-warning-comments"?: RuleNoConfig | [AllowWarnDeny, NoWarningCommentsConfigJson];
|
|
1132
1164
|
"no-with"?: RuleNoConfig;
|
|
1133
1165
|
"node/callback-return"?: RuleNoConfig | [AllowWarnDeny, CallbackReturn];
|
|
1166
|
+
"node/exports-style"?: RuleNoConfig | [AllowWarnDeny, ExportsStyleMode] | [AllowWarnDeny, ExportsStyleMode, ExportsStyleOptions];
|
|
1134
1167
|
"node/global-require"?: RuleNoConfig;
|
|
1135
1168
|
"node/handle-callback-err"?: RuleNoConfig | [AllowWarnDeny, HandleCallbackErrConfig];
|
|
1136
1169
|
"node/no-exports-assign"?: RuleNoConfig;
|
|
@@ -1139,6 +1172,7 @@ interface DummyRuleMap {
|
|
|
1139
1172
|
"node/no-path-concat"?: RuleNoConfig;
|
|
1140
1173
|
"node/no-process-env"?: RuleNoConfig | [AllowWarnDeny, NoProcessEnvConfig];
|
|
1141
1174
|
"node/no-sync"?: RuleNoConfig | [AllowWarnDeny, NoSyncConfig];
|
|
1175
|
+
"node/no-top-level-await"?: RuleNoConfig | [AllowWarnDeny, NoTopLevelAwaitConfig];
|
|
1142
1176
|
"object-shorthand"?: RuleNoConfig | [AllowWarnDeny, ShorthandType] | [AllowWarnDeny, ShorthandType, ObjectShorthandOptions];
|
|
1143
1177
|
"operator-assignment"?: RuleNoConfig | [AllowWarnDeny, AlwaysNever];
|
|
1144
1178
|
"oxc/approx-constant"?: RuleNoConfig;
|
|
@@ -1146,6 +1180,7 @@ interface DummyRuleMap {
|
|
|
1146
1180
|
"oxc/bad-bitwise-operator"?: RuleNoConfig;
|
|
1147
1181
|
"oxc/bad-char-at-comparison"?: RuleNoConfig;
|
|
1148
1182
|
"oxc/bad-comparison-sequence"?: RuleNoConfig;
|
|
1183
|
+
"oxc/bad-match-all-arg"?: RuleNoConfig;
|
|
1149
1184
|
"oxc/bad-min-max-func"?: RuleNoConfig;
|
|
1150
1185
|
"oxc/bad-object-literal-comparison"?: RuleNoConfig;
|
|
1151
1186
|
"oxc/bad-replace-all-arg"?: RuleNoConfig;
|
|
@@ -1169,7 +1204,7 @@ interface DummyRuleMap {
|
|
|
1169
1204
|
"oxc/uninvoked-array-callback"?: RuleNoConfig;
|
|
1170
1205
|
"prefer-arrow-callback"?: RuleNoConfig | [AllowWarnDeny, PreferArrowCallbackConfig];
|
|
1171
1206
|
"prefer-const"?: RuleNoConfig | [AllowWarnDeny, PreferConstConfig];
|
|
1172
|
-
"prefer-destructuring"?: RuleNoConfig | [AllowWarnDeny, PreferDestructuringOption] | [AllowWarnDeny, PreferDestructuringOption,
|
|
1207
|
+
"prefer-destructuring"?: RuleNoConfig | [AllowWarnDeny, PreferDestructuringOption] | [AllowWarnDeny, PreferDestructuringOption, PreferDestructuringEnforcementConfig];
|
|
1173
1208
|
"prefer-exponentiation-operator"?: RuleNoConfig;
|
|
1174
1209
|
"prefer-named-capture-group"?: RuleNoConfig;
|
|
1175
1210
|
"prefer-numeric-literals"?: RuleNoConfig;
|
|
@@ -1210,6 +1245,7 @@ interface DummyRuleMap {
|
|
|
1210
1245
|
"react/forbid-dom-props"?: RuleNoConfig | [AllowWarnDeny, ForbidDomPropsConfig];
|
|
1211
1246
|
"react/forbid-elements"?: RuleNoConfig | [AllowWarnDeny, ForbidElementsConfig];
|
|
1212
1247
|
"react/forward-ref-uses-ref"?: RuleNoConfig;
|
|
1248
|
+
"react/function-component-definition"?: RuleNoConfig | [AllowWarnDeny, FunctionComponentDefinitionConfig];
|
|
1213
1249
|
"react/hook-use-state"?: RuleNoConfig | [AllowWarnDeny, HookUseStateConfig];
|
|
1214
1250
|
"react/iframe-missing-sandbox"?: RuleNoConfig;
|
|
1215
1251
|
"react/jsx-boolean-value"?: RuleNoConfig | [AllowWarnDeny, EnforceBooleanAttribute] | [AllowWarnDeny, EnforceBooleanAttribute, JsxBooleanValueOptions];
|
|
@@ -1554,6 +1590,7 @@ interface DummyRuleMap {
|
|
|
1554
1590
|
"vitest/no-test-return-statement"?: RuleNoConfig;
|
|
1555
1591
|
"vitest/no-unneeded-async-expect-function"?: RuleNoConfig;
|
|
1556
1592
|
"vitest/padding-around-after-all-blocks"?: RuleNoConfig;
|
|
1593
|
+
"vitest/padding-around-test-blocks"?: RuleNoConfig;
|
|
1557
1594
|
"vitest/prefer-called-exactly-once-with"?: RuleNoConfig;
|
|
1558
1595
|
"vitest/prefer-called-once"?: RuleNoConfig;
|
|
1559
1596
|
"vitest/prefer-called-times"?: RuleNoConfig;
|
|
@@ -1569,7 +1606,7 @@ interface DummyRuleMap {
|
|
|
1569
1606
|
"vitest/prefer-hooks-on-top"?: RuleNoConfig;
|
|
1570
1607
|
"vitest/prefer-import-in-mock"?: RuleNoConfig | [AllowWarnDeny, PreferImportInMockConfig];
|
|
1571
1608
|
"vitest/prefer-importing-vitest-globals"?: RuleNoConfig;
|
|
1572
|
-
"vitest/prefer-lowercase-title"?:
|
|
1609
|
+
"vitest/prefer-lowercase-title"?: RuleNoConfig | [AllowWarnDeny, PreferLowercaseTitleConfig];
|
|
1573
1610
|
"vitest/prefer-mock-promise-shorthand"?: RuleNoConfig;
|
|
1574
1611
|
"vitest/prefer-mock-return-shorthand"?: RuleNoConfig;
|
|
1575
1612
|
"vitest/prefer-snapshot-hint"?: RuleNoConfig | [AllowWarnDeny, SnapshotHintMode];
|
|
@@ -2289,6 +2326,96 @@ interface PreferImportingJestGlobalsConfig {
|
|
|
2289
2326
|
*/
|
|
2290
2327
|
types?: JestFnType[];
|
|
2291
2328
|
}
|
|
2329
|
+
interface PreferLowercaseTitleConfig {
|
|
2330
|
+
/**
|
|
2331
|
+
* This array option allows specifying prefixes, which contain capitals that titles
|
|
2332
|
+
* can start with. This can be useful when writing tests for API endpoints, where
|
|
2333
|
+
* you'd like to prefix with the HTTP method.
|
|
2334
|
+
* By default, nothing is allowed (the equivalent of `{ "allowedPrefixes": [] }`).
|
|
2335
|
+
*
|
|
2336
|
+
* Example of **correct** code for the `{ "allowedPrefixes": ["GET"] }` option:
|
|
2337
|
+
* ```js
|
|
2338
|
+
* /* jest/prefer-lowercase-title: ["error", { "allowedPrefixes": ["GET"] }] * /
|
|
2339
|
+
* describe('GET /live');
|
|
2340
|
+
* ```
|
|
2341
|
+
*/
|
|
2342
|
+
allowedPrefixes?: string[];
|
|
2343
|
+
/**
|
|
2344
|
+
* This array option controls which Jest or Vitest functions are checked by this rule. There
|
|
2345
|
+
* are four possible values:
|
|
2346
|
+
* - `"describe"`
|
|
2347
|
+
* - `"test"`
|
|
2348
|
+
* - `"it"`
|
|
2349
|
+
* - `"bench"`
|
|
2350
|
+
*
|
|
2351
|
+
* By default, none of these options are enabled (the equivalent of
|
|
2352
|
+
* `{ "ignore": [] }`).
|
|
2353
|
+
*
|
|
2354
|
+
* Example of **correct** code for the `{ "ignore": ["describe"] }` option:
|
|
2355
|
+
* ```js
|
|
2356
|
+
* /* jest/prefer-lowercase-title: ["error", { "ignore": ["describe"] }] * /
|
|
2357
|
+
* describe('Uppercase description');
|
|
2358
|
+
* ```
|
|
2359
|
+
*
|
|
2360
|
+
* Example of **correct** code for the `{ "ignore": ["test"] }` option:
|
|
2361
|
+
* ```js
|
|
2362
|
+
* /* jest/prefer-lowercase-title: ["error", { "ignore": ["test"] }] * /
|
|
2363
|
+
* test('Uppercase description');
|
|
2364
|
+
* ```
|
|
2365
|
+
*
|
|
2366
|
+
* Example of **correct** code for the `{ "ignore": ["it"] }` option:
|
|
2367
|
+
* ```js
|
|
2368
|
+
* /* jest/prefer-lowercase-title: ["error", { "ignore": ["it"] }] * /
|
|
2369
|
+
* it('Uppercase description');
|
|
2370
|
+
* ```
|
|
2371
|
+
*/
|
|
2372
|
+
ignore?: string[];
|
|
2373
|
+
/**
|
|
2374
|
+
* This option can be set to allow only the top-level `describe` blocks to have a
|
|
2375
|
+
* title starting with an upper-case letter.
|
|
2376
|
+
*
|
|
2377
|
+
* Example of **correct** code for the `{ "ignoreTopLevelDescribe": true }` option:
|
|
2378
|
+
* ```js
|
|
2379
|
+
* /* jest/prefer-lowercase-title: ["error", { "ignoreTopLevelDescribe": true }] * /
|
|
2380
|
+
* describe('MyClass', () => {
|
|
2381
|
+
* describe('#myMethod', () => {
|
|
2382
|
+
* it('does things', () => {
|
|
2383
|
+
* //
|
|
2384
|
+
* });
|
|
2385
|
+
* });
|
|
2386
|
+
* });
|
|
2387
|
+
* ```
|
|
2388
|
+
*/
|
|
2389
|
+
ignoreTopLevelDescribe?: boolean;
|
|
2390
|
+
/**
|
|
2391
|
+
* This option can be set to only validate that the first character of a test name is lowercased.
|
|
2392
|
+
*
|
|
2393
|
+
* Example of **correct** code for the `{ "lowercaseFirstCharacterOnly": true }` option:
|
|
2394
|
+
* ```js
|
|
2395
|
+
* /* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] * /
|
|
2396
|
+
* describe('myClass', () => {
|
|
2397
|
+
* describe('myMethod', () => {
|
|
2398
|
+
* it('does things', () => {
|
|
2399
|
+
* //
|
|
2400
|
+
* });
|
|
2401
|
+
* });
|
|
2402
|
+
* });
|
|
2403
|
+
* ```
|
|
2404
|
+
*
|
|
2405
|
+
* Example of **incorrect** code for the `{ "lowercaseFirstCharacterOnly": true }` option:
|
|
2406
|
+
* ```js
|
|
2407
|
+
* /* vitest/prefer-lowercase-title: ["error", { "lowercaseFirstCharacterOnly": true }] * /
|
|
2408
|
+
* describe('MyClass', () => {
|
|
2409
|
+
* describe('MyMethod', () => {
|
|
2410
|
+
* it('does things', () => {
|
|
2411
|
+
* //
|
|
2412
|
+
* });
|
|
2413
|
+
* });
|
|
2414
|
+
* });
|
|
2415
|
+
* ```
|
|
2416
|
+
*/
|
|
2417
|
+
lowercaseFirstCharacterOnly?: boolean;
|
|
2418
|
+
}
|
|
2292
2419
|
interface RequireHookConfig {
|
|
2293
2420
|
/**
|
|
2294
2421
|
* An array of function names that are allowed to be called outside of hooks.
|
|
@@ -2349,6 +2476,56 @@ interface NoDefaultsConfig {
|
|
|
2349
2476
|
*/
|
|
2350
2477
|
noOptionalParamNames?: boolean;
|
|
2351
2478
|
}
|
|
2479
|
+
interface RequireParamConfig {
|
|
2480
|
+
/**
|
|
2481
|
+
* Whether to check constructor methods.
|
|
2482
|
+
*/
|
|
2483
|
+
checkConstructors?: boolean;
|
|
2484
|
+
/**
|
|
2485
|
+
* Whether to check destructured parameters.
|
|
2486
|
+
*/
|
|
2487
|
+
checkDestructured?: boolean;
|
|
2488
|
+
/**
|
|
2489
|
+
* Whether to check destructured parameters when you have code like
|
|
2490
|
+
* `function doSomething({ a, b }) { ... }`. Because there is no named
|
|
2491
|
+
* parameter in this example, when this option is `true` you must
|
|
2492
|
+
* have a `@param` tag that corresponds to `{a, b}`.
|
|
2493
|
+
*/
|
|
2494
|
+
checkDestructuredRoots?: boolean;
|
|
2495
|
+
/**
|
|
2496
|
+
* Whether to check getter methods.
|
|
2497
|
+
*/
|
|
2498
|
+
checkGetters?: boolean;
|
|
2499
|
+
/**
|
|
2500
|
+
* Whether to check rest properties.
|
|
2501
|
+
*/
|
|
2502
|
+
checkRestProperty?: boolean;
|
|
2503
|
+
/**
|
|
2504
|
+
* Whether to check setter methods.
|
|
2505
|
+
*/
|
|
2506
|
+
checkSetters?: boolean;
|
|
2507
|
+
/**
|
|
2508
|
+
* Regex pattern to match types that exempt parameters from checking.
|
|
2509
|
+
*/
|
|
2510
|
+
checkTypesPattern?: string;
|
|
2511
|
+
/**
|
|
2512
|
+
* List of JSDoc tags that exempt functions from `@param` checking.
|
|
2513
|
+
*/
|
|
2514
|
+
exemptedBy?: string[];
|
|
2515
|
+
/**
|
|
2516
|
+
* Set to `true` to ignore reporting when all params are missing. Defaults to `false`.
|
|
2517
|
+
*/
|
|
2518
|
+
ignoreWhenAllParamsMissing?: boolean;
|
|
2519
|
+
/**
|
|
2520
|
+
* Set if you wish TypeScript interfaces to exempt checks for the existence of `@param`'s.
|
|
2521
|
+
* Will check for a type defining the function itself (on a variable declaration) or if there is a single destructured object with a type. Defaults to `false`.
|
|
2522
|
+
*/
|
|
2523
|
+
interfaceExemptsParamsCheck?: boolean;
|
|
2524
|
+
/**
|
|
2525
|
+
* Set to `true` if you wish to expect documentation of properties on objects supplied as default values. Defaults to `false`.
|
|
2526
|
+
*/
|
|
2527
|
+
useDefaultObjectProperties?: boolean;
|
|
2528
|
+
}
|
|
2352
2529
|
interface RequireParamDescriptionConfig {
|
|
2353
2530
|
/**
|
|
2354
2531
|
* The description string to set by default for destructured roots. Defaults to "The root object".
|
|
@@ -3028,6 +3205,10 @@ interface NoInnerDeclarationsOptions {
|
|
|
3028
3205
|
* Controls whether function declarations in nested blocks are allowed in strict mode (ES6+ behavior).
|
|
3029
3206
|
*/
|
|
3030
3207
|
blockScopedFunctions?: BlockScopedFunctions;
|
|
3208
|
+
/**
|
|
3209
|
+
* Controls whether declarations directly inside TypeScript namespace or module bodies are allowed.
|
|
3210
|
+
*/
|
|
3211
|
+
namespaces?: Namespaces;
|
|
3031
3212
|
}
|
|
3032
3213
|
interface NoInvalidRegexpConfig {
|
|
3033
3214
|
/**
|
|
@@ -3318,6 +3499,38 @@ interface RestrictDefaultExports {
|
|
|
3318
3499
|
*/
|
|
3319
3500
|
namespaceFrom?: boolean;
|
|
3320
3501
|
}
|
|
3502
|
+
/**
|
|
3503
|
+
* A restricted global with an optional custom message.
|
|
3504
|
+
*/
|
|
3505
|
+
interface RestrictedGlobal {
|
|
3506
|
+
/**
|
|
3507
|
+
* A custom message shown when the restricted global is used.
|
|
3508
|
+
*/
|
|
3509
|
+
message?: string;
|
|
3510
|
+
/**
|
|
3511
|
+
* The name of the restricted global.
|
|
3512
|
+
*/
|
|
3513
|
+
name: string;
|
|
3514
|
+
}
|
|
3515
|
+
/**
|
|
3516
|
+
* Object form of the configuration, which additionally allows detecting
|
|
3517
|
+
* restricted globals accessed via global objects.
|
|
3518
|
+
*/
|
|
3519
|
+
interface NoRestrictedGlobalsObjectConfig {
|
|
3520
|
+
/**
|
|
3521
|
+
* Whether to also detect restricted globals accessed via global objects. Default is `false`.
|
|
3522
|
+
*/
|
|
3523
|
+
checkGlobalObject?: boolean;
|
|
3524
|
+
/**
|
|
3525
|
+
* Additional global object names to check when `checkGlobalObject` is enabled.
|
|
3526
|
+
* By default, the rule checks these global objects: `globalThis`, `self`, and `window`.
|
|
3527
|
+
*/
|
|
3528
|
+
globalObjects?: string[];
|
|
3529
|
+
/**
|
|
3530
|
+
* The restricted globals, as names or `{ "name", "message" }` objects.
|
|
3531
|
+
*/
|
|
3532
|
+
globals: GlobalNameOrObject[];
|
|
3533
|
+
}
|
|
3321
3534
|
interface RestrictedPath {
|
|
3322
3535
|
allowImportNames?: string[];
|
|
3323
3536
|
allowTypeImports?: boolean;
|
|
@@ -3861,6 +4074,12 @@ interface NoWarningCommentsConfigJson {
|
|
|
3861
4074
|
location?: Location;
|
|
3862
4075
|
terms?: string[];
|
|
3863
4076
|
}
|
|
4077
|
+
interface ExportsStyleOptions {
|
|
4078
|
+
/**
|
|
4079
|
+
* If this option is set to `true`, `module.exports = exports = obj` are allowed.
|
|
4080
|
+
*/
|
|
4081
|
+
allowBatchAssign?: boolean;
|
|
4082
|
+
}
|
|
3864
4083
|
interface NoMixedRequiresOptions {
|
|
3865
4084
|
allowCall?: boolean;
|
|
3866
4085
|
grouping?: boolean;
|
|
@@ -3881,6 +4100,14 @@ interface NoSyncConfig {
|
|
|
3881
4100
|
*/
|
|
3882
4101
|
ignores?: string[];
|
|
3883
4102
|
}
|
|
4103
|
+
interface NoTopLevelAwaitConfig {
|
|
4104
|
+
/**
|
|
4105
|
+
* If `true`, top-level `await` is allowed in files that start with a
|
|
4106
|
+
* hashbang (`#!`), which marks them as executable scripts rather than
|
|
4107
|
+
* importable modules.
|
|
4108
|
+
*/
|
|
4109
|
+
ignoreBin?: boolean;
|
|
4110
|
+
}
|
|
3884
4111
|
interface ObjectShorthandOptions {
|
|
3885
4112
|
avoidExplicitReturnArrows?: boolean;
|
|
3886
4113
|
avoidQuotes?: boolean;
|
|
@@ -3983,7 +4210,8 @@ interface PreferDestructuringAssignmentConfig {
|
|
|
3983
4210
|
AssignmentExpression?: PreferDestructuringTargetOption;
|
|
3984
4211
|
VariableDeclarator?: PreferDestructuringTargetOption;
|
|
3985
4212
|
}
|
|
3986
|
-
interface
|
|
4213
|
+
interface PreferDestructuringEnforcementConfig {
|
|
4214
|
+
enforceForDeclarationWithTypeAnnotation?: boolean;
|
|
3987
4215
|
enforceForRenamedProperties?: boolean;
|
|
3988
4216
|
}
|
|
3989
4217
|
interface PreferPromiseRejectErrors {
|
|
@@ -4349,6 +4577,10 @@ interface ForbidElementsConfig {
|
|
|
4349
4577
|
*/
|
|
4350
4578
|
forbid?: ForbidItem2[];
|
|
4351
4579
|
}
|
|
4580
|
+
interface FunctionComponentDefinitionConfig {
|
|
4581
|
+
namedComponents?: NamedComponents;
|
|
4582
|
+
unnamedComponents?: UnnamedComponents;
|
|
4583
|
+
}
|
|
4352
4584
|
interface HookUseStateConfig {
|
|
4353
4585
|
/**
|
|
4354
4586
|
* When true the rule will ignore the name of the destructured value.
|
|
@@ -5795,7 +6027,13 @@ interface TripleSlashReferenceConfig {
|
|
|
5795
6027
|
* What to enforce for `/// <reference lib="..." />` references.
|
|
5796
6028
|
*/
|
|
5797
6029
|
lib?: AlwaysNever;
|
|
6030
|
+
/**
|
|
6031
|
+
* What to enforce for `/// <reference path="..." />` references.
|
|
6032
|
+
*/
|
|
5798
6033
|
path?: PathOption;
|
|
6034
|
+
/**
|
|
6035
|
+
* What to enforce for `/// <reference types="..." />` references.
|
|
6036
|
+
*/
|
|
5799
6037
|
types?: TypesOption;
|
|
5800
6038
|
}
|
|
5801
6039
|
interface UnboundMethodConfig {
|
|
@@ -6331,6 +6569,9 @@ interface NoReservedPropsConfig {
|
|
|
6331
6569
|
vueVersion?: number;
|
|
6332
6570
|
}
|
|
6333
6571
|
interface Options$1 {
|
|
6572
|
+
/**
|
|
6573
|
+
* Prop names to ignore, as regular expression patterns.
|
|
6574
|
+
*/
|
|
6334
6575
|
ignoreProps?: string[];
|
|
6335
6576
|
}
|
|
6336
6577
|
interface RequireDirectExport {
|
|
@@ -6649,18 +6890,18 @@ interface VitestPluginSettings {
|
|
|
6649
6890
|
*/
|
|
6650
6891
|
typecheck?: boolean;
|
|
6651
6892
|
[k: string]: unknown | undefined;
|
|
6652
|
-
}
|
|
6893
|
+
}
|
|
6894
|
+
//#endregion
|
|
6653
6895
|
//#region src-js/package/config.d.ts
|
|
6654
6896
|
type Oxlintrc = Omit<Oxlintrc$1, "$schema" | "extends">;
|
|
6655
6897
|
interface OxlintConfig$1 extends Oxlintrc {
|
|
6898
|
+
/**
|
|
6899
|
+
* Configuration objects to extend.
|
|
6900
|
+
*
|
|
6901
|
+
* Import configurations and pass them directly instead of using file paths.
|
|
6902
|
+
*/
|
|
6656
6903
|
extends?: OxlintConfig$1[];
|
|
6657
6904
|
}
|
|
6658
|
-
/**
|
|
6659
|
-
* Define an Oxlint configuration with type inference.
|
|
6660
|
-
*
|
|
6661
|
-
* @param config - Oxlint configuration
|
|
6662
|
-
* @returns Config unchanged
|
|
6663
|
-
*/
|
|
6664
6905
|
//#endregion
|
|
6665
6906
|
//#region src/types.d.ts
|
|
6666
6907
|
/**
|
|
@@ -6733,7 +6974,9 @@ declare namespace ESLint {
|
|
|
6733
6974
|
ignores?: string[];
|
|
6734
6975
|
/** Language options including globals, parser, etc */
|
|
6735
6976
|
languageOptions?: {
|
|
6736
|
-
/** Global variables */
|
|
6977
|
+
/** Global variables */
|
|
6978
|
+
globals?: GlobalsConfig;
|
|
6979
|
+
/** Parser options */
|
|
6737
6980
|
parserOptions?: Record<string, unknown>;
|
|
6738
6981
|
[key: string]: unknown;
|
|
6739
6982
|
};
|
package/dist/src/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as main } from "../src-
|
|
1
|
+
import { t as main } from "../src-CMaVigSj.mjs";
|
|
2
2
|
export { main as default };
|
|
@@ -389,7 +389,8 @@ const cleanUpUnusedJsPlugins = (config) => {
|
|
|
389
389
|
if (config.jsPlugins === void 0 || config.jsPlugins === null || config.jsPlugins.length === 0) return;
|
|
390
390
|
const ruleNames = Object.keys(config.rules ?? {});
|
|
391
391
|
config.jsPlugins = config.jsPlugins.filter((entry) => {
|
|
392
|
-
|
|
392
|
+
const packageName = typeof entry === "string" ? entry : entry.specifier;
|
|
393
|
+
return hasRulesForPlugin(ruleNames, packageName);
|
|
393
394
|
});
|
|
394
395
|
if (config.jsPlugins.length === 0) delete config.jsPlugins;
|
|
395
396
|
};
|
|
@@ -545,6 +546,7 @@ const styleRules = [
|
|
|
545
546
|
"func-style",
|
|
546
547
|
"grouped-accessor-pairs",
|
|
547
548
|
"guard-for-in",
|
|
549
|
+
"id-denylist",
|
|
548
550
|
"id-length",
|
|
549
551
|
"id-match",
|
|
550
552
|
"init-declarations",
|
|
@@ -650,6 +652,7 @@ const styleRules = [
|
|
|
650
652
|
"jsdoc/require-throws-description",
|
|
651
653
|
"jsdoc/require-yields-description",
|
|
652
654
|
"node/callback-return",
|
|
655
|
+
"node/exports-style",
|
|
653
656
|
"node/global-require",
|
|
654
657
|
"node/no-exports-assign",
|
|
655
658
|
"node/no-mixed-requires",
|
|
@@ -661,6 +664,7 @@ const styleRules = [
|
|
|
661
664
|
"promise/prefer-await-to-callbacks",
|
|
662
665
|
"promise/prefer-await-to-then",
|
|
663
666
|
"promise/prefer-catch",
|
|
667
|
+
"react/function-component-definition",
|
|
664
668
|
"react/hook-use-state",
|
|
665
669
|
"react/jsx-boolean-value",
|
|
666
670
|
"react/jsx-curly-brace-presence",
|
|
@@ -769,6 +773,7 @@ const styleRules = [
|
|
|
769
773
|
"vitest/no-test-return-statement",
|
|
770
774
|
"vitest/no-unneeded-async-expect-function",
|
|
771
775
|
"vitest/padding-around-after-all-blocks",
|
|
776
|
+
"vitest/padding-around-test-blocks",
|
|
772
777
|
"vitest/prefer-called-exactly-once-with",
|
|
773
778
|
"vitest/prefer-called-once",
|
|
774
779
|
"vitest/prefer-called-times",
|
|
@@ -915,6 +920,7 @@ const restrictionRules = [
|
|
|
915
920
|
"node/no-new-require",
|
|
916
921
|
"node/no-path-concat",
|
|
917
922
|
"node/no-process-env",
|
|
923
|
+
"node/no-top-level-await",
|
|
918
924
|
"promise/catch-or-return",
|
|
919
925
|
"promise/spec-only",
|
|
920
926
|
"react/button-has-type",
|
|
@@ -1323,6 +1329,25 @@ var unsupportedRules = {
|
|
|
1323
1329
|
"import/no-unresolved": "Will always contain false positives due to module resolution complexity.",
|
|
1324
1330
|
"promise/no-native": "Handled by `eslint/no-undef`.",
|
|
1325
1331
|
"unicorn/no-for-loop": "This rule suggests using `Array.prototype.entries` which is slow https://github.com/oxc-project/oxc/issues/11311, furthermore, `typescript/prefer-for-of` covers most cases.",
|
|
1332
|
+
"unicorn/no-useless-coercion": "No need to implement, already implemented by `typescript/no-unnecessary-type-conversion` via tsgolint.",
|
|
1333
|
+
"unicorn/no-unnecessary-boolean-comparison": "No need to implement, already implemented by `typescript/no-unnecessary-boolean-literal-compare` via tsgolint.",
|
|
1334
|
+
"unicorn/no-nonstandard-builtin-properties": "No need to implement, TypeScript type checking reports non-standard properties and invalid calls or constructions on built-ins.",
|
|
1335
|
+
"unicorn/no-boolean-sort-comparator": "No need to implement, TypeScript type checking requires array sort comparators to return numbers.",
|
|
1336
|
+
"unicorn/no-invalid-argument-count": "No need to implement, TypeScript type checking reports invalid argument counts for functions, constructors, and built-in APIs.",
|
|
1337
|
+
"unicorn/no-useless-template-literals": "No need to implement. `typescript/no-unnecessary-template-expression` covers static and already-string expressions, while `eslint/no-implicit-coercion` with `disallowTemplateShorthand` covers expression-only string coercions.",
|
|
1338
|
+
"unicorn/prefer-explicit-viewport-units": "Not currently possible, as full support requires parsing standalone CSS files.",
|
|
1339
|
+
"unicorn/require-frontmatter-fields": "Not currently possible, as it requires parsing YAML frontmatter in Markdown files.",
|
|
1340
|
+
"unicorn/no-missing-local-resource": "Not currently possible, as it requires parsing standalone Markdown, HTML, and CSS files and resolving their local resources.",
|
|
1341
|
+
"unicorn/no-transition-all": "Not currently possible, as full support requires parsing standalone CSS files.",
|
|
1342
|
+
"unicorn/no-shorthand-property-overrides": "Not currently possible, as it requires parsing standalone CSS files.",
|
|
1343
|
+
"unicorn/require-proxy-trap-boolean-return": "No need to implement, TypeScript type checking enforces boolean return types for the relevant `ProxyHandler` traps.",
|
|
1344
|
+
"unicorn/consistent-class-member-order": "Use `typescript/member-ordering` instead, which can be configured with the same class member group order and will be supported in Oxlint.",
|
|
1345
|
+
"unicorn/no-collection-bracket-access": "No need to implement, TypeScript type checking reports invalid bracket access on `Map`, `Set`, `WeakMap`, and `WeakSet` values.",
|
|
1346
|
+
"unicorn/no-accidental-bitwise-operator": "No need to implement, already covered by `oxc/bad-bitwise-operator`.",
|
|
1347
|
+
"unicorn/no-misrefactored-assignment": "No need to implement, already covered by `oxc/misrefactored-assign-op`.",
|
|
1348
|
+
"unicorn/no-constant-zero-expression": "No need to implement, already covered by `oxc/erasing-op`.",
|
|
1349
|
+
"unicorn/prefer-math-constants": "No need to implement, already covered by `oxc/approx-constant`.",
|
|
1350
|
+
"unicorn/require-array-sort-compare": "No need to implement, already implemented by `typescript/require-array-sort-compare` via tsgolint.",
|
|
1326
1351
|
"eslint/no-negated-in-lhs": "Replaced by `eslint/no-unsafe-negation`, which we support.",
|
|
1327
1352
|
"eslint/no-catch-shadow": "Replaced by `eslint/no-shadow`.",
|
|
1328
1353
|
"eslint/id-blacklist": "Replaced by `eslint/id-denylist`.",
|
|
@@ -1363,8 +1388,13 @@ var unsupportedRules = {
|
|
|
1363
1388
|
"n/prefer-global/timers": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
|
|
1364
1389
|
"n/prefer-global/url": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
|
|
1365
1390
|
"n/prefer-global/url-search-params": "No need to implement, the same policy can be enforced with generic restriction rules such as `no-restricted-imports` and `no-restricted-globals`.",
|
|
1391
|
+
"n/no-unpublished-bin": "No support for this rule in Oxlint, as it requires knowledge of the package.json file and its `bin` field.",
|
|
1366
1392
|
"import/order": "Not implementing this in Oxlint as its behavior is covered very well by [Oxfmt's import sorting](https://oxc.rs/docs/guide/usage/formatter/sorting.html).",
|
|
1367
1393
|
"unicorn/template-indent": "Stylistic rule.",
|
|
1394
|
+
"unicorn/no-non-function-verb-prefix": "Requires type information. Not currently possible to implement in oxlint.",
|
|
1395
|
+
"unicorn/prefer-json-parse-buffer": "Deprecated.",
|
|
1396
|
+
"unicorn/prevent-abbreviations": "Deprecated.",
|
|
1397
|
+
"unicorn/better-regex": "Deprecated.",
|
|
1368
1398
|
"jsdoc/type-formatting": "Experimental rule in the original plugin, may reconsider once stable.",
|
|
1369
1399
|
"jsdoc/convert-to-jsdoc-comments": "Experimental rule in the original plugin, may reconsider once stable.",
|
|
1370
1400
|
"jsdoc/check-examples": "Deprecated.",
|
|
@@ -1403,35 +1433,35 @@ var unsupportedRules = {
|
|
|
1403
1433
|
"react/jsx-sort-props": "Stylistic rule from eslint-plugin-react. Should use Oxfmt for stylistic rules, or use JS Plugins to enable this rule.",
|
|
1404
1434
|
"react/no-adjacent-inline-elements": "Stylistic rule from eslint-plugin-react. Should use Oxfmt for stylistic rules, or use JS Plugins to enable this rule.",
|
|
1405
1435
|
"react/no-deprecated": "No need to implement, already implemented by `typescript/no-deprecated` via tsgolint.",
|
|
1406
|
-
"react/config": "React Compiler rules
|
|
1407
|
-
"react/error-boundaries": "React Compiler rules
|
|
1408
|
-
"react/component-hook-factories": "React Compiler rules
|
|
1409
|
-
"react/gating": "React Compiler rules
|
|
1410
|
-
"react/globals": "React Compiler rules
|
|
1411
|
-
"react/immutability": "React Compiler rules
|
|
1412
|
-
"react/preserve-manual-memoization": "React Compiler rules
|
|
1413
|
-
"react/purity": "React Compiler rules
|
|
1414
|
-
"react/refs": "React Compiler rules
|
|
1415
|
-
"react/set-state-in-effect": "React Compiler rules
|
|
1416
|
-
"react/set-state-in-render": "React Compiler rules
|
|
1417
|
-
"react/static-components": "React Compiler rules
|
|
1418
|
-
"react/unsupported-syntax": "React Compiler rules
|
|
1419
|
-
"react/use-memo": "React Compiler rules
|
|
1420
|
-
"react/incompatible-library": "React Compiler rules
|
|
1421
|
-
"react/automatic-effect-dependencies": "React Compiler rules
|
|
1422
|
-
"react/memo-dependencies": "React Compiler rules
|
|
1423
|
-
"react/exhaustive-effect-dependencies": "React Compiler rules
|
|
1424
|
-
"react/capitalized-calls": "React Compiler rules
|
|
1425
|
-
"react/fbt": "React Compiler rules
|
|
1426
|
-
"react/fire": "React Compiler rules
|
|
1427
|
-
"react/invariant": "React Compiler rules
|
|
1428
|
-
"react/hooks": "React Compiler rules
|
|
1429
|
-
"react/memoized-effect-dependencies": "React Compiler rules
|
|
1430
|
-
"react/no-deriving-state-in-effects": "React Compiler rules
|
|
1431
|
-
"react/rule-suppression": "React Compiler rules
|
|
1432
|
-
"react/syntax": "React Compiler rules
|
|
1433
|
-
"react/todo": "React Compiler rules
|
|
1434
|
-
"react/void-use-memo": "React Compiler rules
|
|
1436
|
+
"react/config": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1437
|
+
"react/error-boundaries": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1438
|
+
"react/component-hook-factories": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1439
|
+
"react/gating": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1440
|
+
"react/globals": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1441
|
+
"react/immutability": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1442
|
+
"react/preserve-manual-memoization": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1443
|
+
"react/purity": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1444
|
+
"react/refs": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1445
|
+
"react/set-state-in-effect": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1446
|
+
"react/set-state-in-render": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1447
|
+
"react/static-components": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1448
|
+
"react/unsupported-syntax": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1449
|
+
"react/use-memo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1450
|
+
"react/incompatible-library": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1451
|
+
"react/automatic-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1452
|
+
"react/memo-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1453
|
+
"react/exhaustive-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1454
|
+
"react/capitalized-calls": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1455
|
+
"react/fbt": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1456
|
+
"react/fire": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1457
|
+
"react/invariant": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1458
|
+
"react/hooks": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1459
|
+
"react/memoized-effect-dependencies": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1460
|
+
"react/no-deriving-state-in-effects": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1461
|
+
"react/rule-suppression": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1462
|
+
"react/syntax": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1463
|
+
"react/todo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1464
|
+
"react/void-use-memo": "React Compiler rules are implemented experimentally as `react/react-compiler`. We will split them into separate rules once they stabilize.",
|
|
1435
1465
|
"react/default-props-match-prop-types": "This rule only applies to legacy class components, which are not widely used in modern React. Also stylistic.",
|
|
1436
1466
|
"react/forbid-foreign-prop-types": "PropTypes are ignored in React 19, and this rule is only relevant for very specific use-cases involving it.",
|
|
1437
1467
|
"react/forbid-prop-types": "PropTypes are ignored in React 19, and this rule is only relevant if you use the PropTypes package.",
|
|
@@ -1655,6 +1685,7 @@ var unsupportedRules = {
|
|
|
1655
1685
|
"vue/prefer-separate-static-class": "Not currently possible, as it requires Vue template parsing.",
|
|
1656
1686
|
"vue/prefer-template": "Not currently possible, as it requires Vue template parsing.",
|
|
1657
1687
|
"vue/prefer-true-attribute-shorthand": "Not currently possible, as it requires Vue template parsing.",
|
|
1688
|
+
"vue/prefer-v-model": "Not currently possible, as it requires Vue template parsing.",
|
|
1658
1689
|
"vue/quote-props": "Stylistic rule.",
|
|
1659
1690
|
"vue/require-component-is": "Not currently possible, as it requires Vue template parsing.",
|
|
1660
1691
|
"vue/require-explicit-emits": "Not currently possible, as it requires Vue template parsing.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxlint/migrate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.76.0",
|
|
4
4
|
"description": "Generates a `.oxlintrc.json` from a existing eslint flat config",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -26,21 +26,10 @@
|
|
|
26
26
|
"types": "./dist/src/index.d.mts",
|
|
27
27
|
"import": "./dist/src/index.mjs"
|
|
28
28
|
},
|
|
29
|
-
"scripts": {
|
|
30
|
-
"prepare": "husky",
|
|
31
|
-
"generate": "node --import @oxc-node/core/register ./scripts/generate.ts",
|
|
32
|
-
"generate:unsupported": "node --import @oxc-node/core/register ./scripts/fetch-unsupported-rules.ts",
|
|
33
|
-
"generate:all": "pnpm generate && pnpm generate:unsupported && pnpm format",
|
|
34
|
-
"format": "oxfmt",
|
|
35
|
-
"lint": "oxlint",
|
|
36
|
-
"test": "vitest",
|
|
37
|
-
"build": "tsdown",
|
|
38
|
-
"manual-test": "pnpm build; chmod +x dist/bin/oxlint-migrate.mjs; npx ."
|
|
39
|
-
},
|
|
40
29
|
"dependencies": {
|
|
41
30
|
"commander": "^15.0.0",
|
|
42
31
|
"globals": "^17.0.0",
|
|
43
|
-
"oxc-parser": "^0.
|
|
32
|
+
"oxc-parser": "^0.139.0",
|
|
44
33
|
"tinyglobby": "^0.2.14"
|
|
45
34
|
},
|
|
46
35
|
"devDependencies": {
|
|
@@ -83,8 +72,8 @@
|
|
|
83
72
|
"husky": "^9.1.7",
|
|
84
73
|
"lint-staged": "^17.0.0",
|
|
85
74
|
"next": "^16.0.0",
|
|
86
|
-
"oxfmt": "^0.
|
|
87
|
-
"oxlint": "^1.
|
|
75
|
+
"oxfmt": "^0.58.0",
|
|
76
|
+
"oxlint": "^1.76.0",
|
|
88
77
|
"oxlint-tsgolint": "^0.24.0",
|
|
89
78
|
"tsdown": "^0.22.0",
|
|
90
79
|
"typescript": "^6.0.0",
|
|
@@ -94,5 +83,14 @@
|
|
|
94
83
|
"lint-staged": {
|
|
95
84
|
"*": "oxfmt --no-error-on-unmatched-pattern"
|
|
96
85
|
},
|
|
97
|
-
"
|
|
98
|
-
|
|
86
|
+
"scripts": {
|
|
87
|
+
"generate": "node --import @oxc-node/core/register ./scripts/generate.ts",
|
|
88
|
+
"generate:unsupported": "node --import @oxc-node/core/register ./scripts/fetch-unsupported-rules.ts",
|
|
89
|
+
"generate:all": "pnpm generate && pnpm generate:unsupported && pnpm format",
|
|
90
|
+
"format": "oxfmt",
|
|
91
|
+
"lint": "oxlint",
|
|
92
|
+
"test": "vitest",
|
|
93
|
+
"build": "tsdown",
|
|
94
|
+
"manual-test": "pnpm build; chmod +x dist/bin/oxlint-migrate.mjs; npx ."
|
|
95
|
+
}
|
|
96
|
+
}
|