Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
c084042
docs: add ESLint → Oxlint migration plan
shinagawa-web Sep 10, 2026
3122e27
chore: migrate ESLint to Oxlint
shinagawa-web Sep 10, 2026
5e04452
test: add verification §A rule-set comparison for oxlint migration
shinagawa-web Sep 10, 2026
858dc21
test: add verification §B lint target file-set comparison
shinagawa-web Sep 10, 2026
bbe0f03
test: add verification §C intentional-violation probe script
shinagawa-web Sep 10, 2026
508aa25
docs: record verification §D findings and known-unmigratable rules
shinagawa-web Sep 10, 2026
09f34eb
Revert "docs: record verification §D findings and known-unmigratable …
shinagawa-web Sep 10, 2026
0ec2f27
Revert "test: add verification §C intentional-violation probe script"
shinagawa-web Sep 10, 2026
9f66a69
Revert "test: add verification §B lint target file-set comparison"
shinagawa-web Sep 10, 2026
e92efb6
Revert "test: add verification §A rule-set comparison for oxlint migr…
shinagawa-web Sep 10, 2026
9f5d06b
Merge remote-tracking branch 'origin/main' into chore/eslint-to-oxlin…
shinagawa-web Sep 10, 2026
770500f
fix: regenerate lockfile after merging main
shinagawa-web Sep 10, 2026
1971c05
fix: remove @eslint/js leftover reintroduced by the main merge
shinagawa-web Sep 10, 2026
2dd6ef3
fix: remove duplicate **/*.test.ts entry in strict-dependencies src/z…
shinagawa-web Sep 10, 2026
876a5eb
docs: restore known-unmigratable-rules table dropped by the §D revert
shinagawa-web Sep 10, 2026
1740aec
docs: remove migration planning doc now that the migration is complete
shinagawa-web Sep 10, 2026
eccc574
Merge remote-tracking branch 'origin/main' into chore/eslint-to-oxlin…
shinagawa-web Sep 14, 2026
9e484da
chore: update oxlint configuration schema path and refine no-unused-v…
shinagawa-web Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions examples/misc/.oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"$schema": "../../node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript"],
"categories": {
"correctness": "off"
},
"env": {
"builtin": true
},
"ignorePatterns": ["**/dist/*"],
"rules": {
"constructor-super": "error",
"for-direction": "error",
"getter-return": "error",
"no-async-promise-executor": "error",
"no-case-declarations": "error",
"no-class-assign": "error",
"no-compare-neg-zero": "error",
"no-cond-assign": "error",
"no-const-assign": "error",
"no-constant-binary-expression": "error",
"no-constant-condition": "error",
"no-control-regex": "error",
"no-debugger": "error",
"no-delete-var": "error",
"no-dupe-class-members": "error",
"no-dupe-else-if": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-empty-pattern": "error",
"no-empty-static-block": "error",
"no-ex-assign": "error",
"no-extra-boolean-cast": "error",
"no-fallthrough": "error",
"no-func-assign": "error",
"no-global-assign": "error",
"no-import-assign": "error",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-loss-of-precision": "error",
"no-misleading-character-class": "error",
"no-new-native-nonconstructor": "error",
"no-nonoctal-decimal-escape": "error",
"no-obj-calls": "error",
"no-prototype-builtins": "error",
"no-redeclare": "error",
"no-regex-spaces": "error",
"no-self-assign": "error",
"no-setter-return": "error",
"no-shadow-restricted-names": "error",
"no-sparse-arrays": "error",
"no-this-before-super": "error",
"no-unexpected-multiline": "error",
"no-unreachable": "error",
"no-unsafe-finally": "error",
"no-unsafe-negation": "error",
"no-unsafe-optional-chaining": "error",
"no-unused-labels": "error",
"no-unused-private-class-members": "error",
"no-unused-vars": ["error", { "reportVarsOnlyUsedAsTypes": true }],
"no-useless-backreference": "error",
"no-useless-catch": "error",
"no-useless-escape": "error",
"no-with": "error",
"require-yield": "error",
"use-isnan": "error",
"valid-typeof": "error",
"no-array-constructor": "error",
"no-unused-expressions": "error",
"typescript/ban-ts-comment": "error",
"typescript/no-duplicate-enum-values": "error",
"typescript/no-empty-object-type": "error",
"typescript/no-explicit-any": "error",
"typescript/no-extra-non-null-assertion": "error",
"typescript/no-misused-new": "error",
"typescript/no-namespace": "error",
"typescript/no-non-null-asserted-optional-chain": "error",
"typescript/no-require-imports": "error",
"typescript/no-this-alias": "error",
"typescript/no-unnecessary-type-constraint": "error",
"typescript/no-unsafe-declaration-merging": "error",
"typescript/no-unsafe-function-type": "error",
"typescript/no-wrapper-object-types": "error",
"typescript/prefer-as-const": "error",
"typescript/prefer-namespace-keyword": "error",
"typescript/triple-slash-reference": "error"
},
"overrides": [
{
"files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
"rules": {
"constructor-super": "off",
"getter-return": "off",
"no-class-assign": "off",
"no-const-assign": "off",
"no-dupe-class-members": "off",
"no-dupe-keys": "off",
"no-func-assign": "off",
"no-import-assign": "off",
"no-new-native-nonconstructor": "off",
"no-obj-calls": "off",
"no-redeclare": "off",
"no-setter-return": "off",
"no-this-before-super": "off",
"no-unreachable": "off",
"no-unsafe-negation": "off",
"no-var": "error",
"no-with": "off",
"prefer-const": "error",
"prefer-rest-params": "error",
"prefer-spread": "error"
}
}
]
}
8 changes: 0 additions & 8 deletions examples/misc/eslint.config.js

This file was deleted.

9 changes: 3 additions & 6 deletions examples/misc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"format": "oxfmt .",
"watch:type-check": "npx tsc --noEmit --watch",
"test": "run-p test:*",
"test:lint": "eslint .",
"test:lint": "oxlint .",
"test:format": "oxfmt --check .",
"test:type-check": "tsc --noEmit",
"ex:express:zod:server": "tsx express/zod/express.ts",
Expand All @@ -25,13 +25,10 @@
"zod": "^4.5.4"
},
"devDependencies": {
"@eslint/js": "^9.39.5",
"@types/cors": "^2.8.19",
"eslint": "^9.39.5",
"eslint-plugin-strict-dependencies": "^1.3.35",
"npm-run-all2": "^9.0.3",
"oxfmt": "^0.66.0",
"tsx": "^4.23.13",
"typescript-eslint": "^8.69.0"
"oxlint": "^1.82.0",
"tsx": "^4.23.13"
}
}
129 changes: 129 additions & 0 deletions examples/vite-react-openapi/.oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
{
"$schema": "../../node_modules/oxlint/configuration_schema.json",
"plugins": [],
"categories": {
"correctness": "off"
},
"env": {
"builtin": true
},
"ignorePatterns": ["dist"],
"overrides": [
{
"files": ["**/*.{ts,tsx}"],
"rules": {
"constructor-super": "off",
"for-direction": "error",
"getter-return": "off",
"no-async-promise-executor": "error",
"no-case-declarations": "error",
"no-class-assign": "off",
"no-compare-neg-zero": "error",
"no-cond-assign": "error",
"no-const-assign": "off",
"no-constant-binary-expression": "error",
"no-constant-condition": "error",
"no-control-regex": "error",
"no-debugger": "error",
"no-delete-var": "error",
"no-dupe-class-members": "off",
"no-dupe-else-if": "error",
"no-dupe-keys": "off",
"no-duplicate-case": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-empty-pattern": "error",
"no-empty-static-block": "error",
"no-ex-assign": "error",
"no-extra-boolean-cast": "error",
"no-fallthrough": "error",
"no-func-assign": "off",
"no-global-assign": "error",
"no-import-assign": "off",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-loss-of-precision": "error",
"no-misleading-character-class": "error",
"no-new-native-nonconstructor": "off",
"no-nonoctal-decimal-escape": "error",
"no-obj-calls": "off",
"no-prototype-builtins": "error",
"no-redeclare": "off",
"no-regex-spaces": "error",
"no-self-assign": "error",
"no-setter-return": "off",
"no-shadow-restricted-names": "error",
"no-sparse-arrays": "error",
"no-this-before-super": "off",
"no-unexpected-multiline": "error",
"no-unreachable": "off",
"no-unsafe-finally": "error",
"no-unsafe-negation": "off",
"no-unsafe-optional-chaining": "error",
"no-unused-labels": "error",
"no-unused-private-class-members": "error",
"no-unused-vars": ["error", { "reportVarsOnlyUsedAsTypes": true }],
"no-useless-backreference": "error",
"no-useless-catch": "error",
"no-useless-escape": "error",
"no-with": "off",
"require-yield": "error",
"use-isnan": "error",
"valid-typeof": "error",
"no-var": "error",
"prefer-const": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",
"no-array-constructor": "error",
"no-unused-expressions": "error",
"typescript/ban-ts-comment": "error",
"typescript/no-duplicate-enum-values": "error",
"typescript/no-empty-object-type": "error",
"typescript/no-explicit-any": "error",
"typescript/no-extra-non-null-assertion": "error",
"typescript/no-misused-new": "error",
"typescript/no-namespace": "error",
"typescript/no-non-null-asserted-optional-chain": "error",
"typescript/no-require-imports": "error",
"typescript/no-this-alias": "error",
"typescript/no-unnecessary-type-constraint": "error",
"typescript/no-unsafe-declaration-merging": "error",
"typescript/no-unsafe-function-type": "error",
"typescript/no-wrapper-object-types": "error",
"typescript/prefer-as-const": "error",
"typescript/prefer-namespace-keyword": "error",
"typescript/triple-slash-reference": "error",
"react/rules-of-hooks": "error",
"react/exhaustive-deps": "warn",
"react/static-components": "error",
"react/use-memo": "error",
"react/preserve-manual-memoization": "error",
"react/incompatible-library": "warn",
"react/immutability": "error",
"react/globals": "error",
"react/refs": "error",
"react/set-state-in-effect": "error",
"react/error-boundaries": "error",
"react/purity": "error",
"react/set-state-in-render": "error",
"react/unsupported-syntax": "warn",
"react/only-export-components": [
"warn",
{
"allowConstantExport": true
}
]
},
"plugins": ["typescript", "react"],
"env": {
"es2020": true,
"browser": true
},
"globals": {
"AsyncDisposableStack": "readonly",
"DisposableStack": "readonly",
"SuppressedError": "readonly"
}
}
]
}
28 changes: 0 additions & 28 deletions examples/vite-react-openapi/eslint.config.js

This file was deleted.

9 changes: 2 additions & 7 deletions examples/vite-react-openapi/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",
"lint": "eslint .",
"lint": "oxlint .",
"preview": "vite preview"
},
"dependencies": {
Expand All @@ -15,16 +15,11 @@
"swagger-ui-react": "^5.32.15"
},
"devDependencies": {
"@eslint/js": "^9.17.0",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^6.1.1",
"eslint": "^9.17.0",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.5",
"globals": "^17.6.0",
"oxlint": "^1.82.0",
"typescript": "~5.6.2",
"typescript-eslint": "^8.69.0",
"vite": "^8.0.16"
}
}
Loading
Loading