diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 23c2d68..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint"], - "rules": { - "no-await-in-loop": "warn", - "no-unused-labels": "warn", - "quotes": ["error", "double"], - "getter-return": "error", - "newline-before-return": "error", - "no-multiple-empty-lines": "error", - "no-var": "error", - "no-this-before-super": "warn", - "no-useless-return": "error", - "no-shadow": "error", - "prefer-const": "warn", - "no-unreachable": "warn", - "no-undef": "off", - "no-empty": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ] - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..5d5c5c3 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,63 @@ +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + ...compat + .extends("eslint:recommended", "plugin:@typescript-eslint/recommended") + .map((config) => ({ + ...config, + files: ["**/*.ts"], + })), + { + files: ["**/*.ts"], + + plugins: { + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + parser: tsParser, + }, + + rules: { + "no-await-in-loop": "warn", + "no-unused-labels": "warn", + quotes: ["error", "double"], + "getter-return": "error", + "newline-before-return": "error", + "no-multiple-empty-lines": "error", + "no-var": "error", + "no-this-before-super": "warn", + "no-useless-return": "error", + "no-shadow": "error", + "prefer-const": "warn", + "no-unreachable": "warn", + "no-undef": "off", + "no-empty": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/ban-types": "off", + + "@typescript-eslint/no-unused-vars": [ + "warn", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + caughtErrorsIgnorePattern: "^_", + }, + ], + }, + }, +]; diff --git a/package.json b/package.json index df3856b..5d93aae 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ "prepublish": "pnpm build", "pub": "pnpm publish --no-git-checks --access public", "format": "prettier --config .prettierrc.js --write .", - "lint": "eslint ./src/ --ext .ts", - "lint:fix": "eslint ./src/ --ext .ts --fix" + "lint": "eslint ./src/", + "lint:fix": "eslint ./src/ --fix" }, "files": [ "dist", @@ -26,6 +26,8 @@ "author": "", "license": "ISC", "devDependencies": { + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.12.0", "@fastify/static": "^8.0.1", "@mercuryworkshop/bare-as-module3": "^2.2.2", "@mercuryworkshop/epoxy-transport": "^2.1.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f6349e..fbe6a76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,6 +30,12 @@ importers: specifier: ^2.7.0 version: 2.7.0 devDependencies: + '@eslint/eslintrc': + specifier: ^3.1.0 + version: 3.1.0 + '@eslint/js': + specifier: ^9.12.0 + version: 9.12.0 '@fastify/static': specifier: ^8.0.1 version: 8.0.1