Skip to content

Commit

Permalink
feat: support ESLint 9 (#31)
Browse files Browse the repository at this point in the history
* feat: support ESLint 9

* add new config
  • Loading branch information
azu authored Dec 31, 2024
1 parent 2eb7b8e commit 7a2405b
Show file tree
Hide file tree
Showing 6 changed files with 2,117 additions and 1,171 deletions.
54 changes: 0 additions & 54 deletions .eslintrc.cjs

This file was deleted.

4 changes: 2 additions & 2 deletions eslint-cjs-to-esm.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import path from "node:path";
const __filename__ = url.fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename__);

const builtinConfig = path.join(__dirname, ".eslintrc.cjs");
const builtinConfig = path.join(__dirname, "eslint.config.mjs");
try {
const args = process.argv.slice(2).map(arg => {
// if arg is path like string, convert it absolute path
Expand All @@ -31,7 +31,7 @@ try {
...platformArguments,
"--config",
builtinConfig,
"--no-eslintrc",
"--no-config-lookup",
"--no-inline-config",
...args], {
env: {
Expand Down
61 changes: 61 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import node from "eslint-plugin-node";
import _import from "eslint-plugin-import";
import unicorn from "eslint-plugin-unicorn";
import fileExtensionInImportTs from "eslint-plugin-file-extension-in-import-ts";
import { fixupPluginRules } from "@eslint/compat";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";

export default [{
files: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"],
plugins: {
node,
import: fixupPluginRules(_import),
unicorn,
"file-extension-in-import-ts": fileExtensionInImportTs
},

languageOptions: {
globals: {
...globals.browser
},
parser: tsParser,
ecmaVersion: "latest",
sourceType: "module"
},

settings: {
"import/resolver": {
typescript: true,
node: true
},

node: {
resolvePaths: ["node_modules/@types"]
}
},

rules: {
"file-extension-in-import-ts/file-extension-in-import-ts": ["error", "always", {
extMapping: {
".ts": ".js"
}
}],

"node/no-extraneous-import": "error",
"node/no-sync": "warn",
"node/file-extension-in-import": "error",
"import/extensions": "error",

"import/no-unresolved": ["error", {
ignore: ["\\.js$"]
}],

"import/no-useless-path-segments": "error",
"import/no-extraneous-dependencies": "error",
"import/no-commonjs": "error",
"unicorn/prefer-module": "error",
"unicorn/prefer-node-protocol": "error",
"unicorn/prefer-top-level-await": "error"
}
}];
Loading

0 comments on commit 7a2405b

Please sign in to comment.