diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..007d361 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,82 @@ +import { defineConfig, globalIgnores } from 'eslint/config' +import typescriptEslint from '@typescript-eslint/eslint-plugin' +import globals from 'globals' +import tsParser from '@typescript-eslint/parser' +import github from 'eslint-plugin-github' + +export default defineConfig([ + globalIgnores(['**/dist/', '**/lib/', '**/node_modules/', '**/tests/**/*', 'eslint.config.js']), + github.getFlatConfigs().recommended, + { + plugins: { + '@typescript-eslint': typescriptEslint + }, + + files: ['packages/**/*.ts'], + + languageOptions: { + globals: globals.node, + + parser: tsParser, + ecmaVersion: 9, + sourceType: 'module', + + parserOptions: { + project: './tsconfig.json' + } + }, + + rules: { + 'eslint-comments/no-use': 'off', + 'import/no-namespace': 'off', + 'no-constant-condition': 'off', + 'no-unused-vars': 'off', + 'i18n-text/no-en': 'off', + '@typescript-eslint/no-unused-vars': 'error', + + '@typescript-eslint/explicit-member-accessibility': [ + 'error', + { + accessibility: 'no-public' + } + ], + + '@typescript-eslint/no-require-imports': 'error', + '@typescript-eslint/array-type': 'error', + '@typescript-eslint/await-thenable': 'error', + camelcase: 'off', + + '@typescript-eslint/explicit-function-return-type': [ + 'error', + { + allowExpressions: true + } + ], + + '@typescript-eslint/no-array-constructor': 'error', + '@typescript-eslint/no-empty-interface': 'error', + '@typescript-eslint/no-explicit-any': 'warn', + '@typescript-eslint/no-extraneous-class': 'error', + '@typescript-eslint/no-floating-promises': 'error', + '@typescript-eslint/no-for-in-array': 'error', + '@typescript-eslint/no-inferrable-types': 'error', + '@typescript-eslint/no-misused-new': 'error', + '@typescript-eslint/no-namespace': 'error', + '@typescript-eslint/no-non-null-assertion': 'warn', + '@typescript-eslint/no-unnecessary-qualifier': 'error', + '@typescript-eslint/no-unnecessary-type-assertion': 'error', + '@typescript-eslint/no-useless-constructor': 'error', + '@typescript-eslint/no-var-requires': 'error', + '@typescript-eslint/prefer-for-of': 'warn', + '@typescript-eslint/prefer-function-type': 'warn', + '@typescript-eslint/prefer-includes': 'error', + '@typescript-eslint/prefer-string-starts-ends-with': 'error', + '@typescript-eslint/promise-function-async': 'error', + '@typescript-eslint/require-array-sort-compare': 'error', + '@typescript-eslint/restrict-plus-operands': 'error', + '@typescript-eslint/unbound-method': 'error', + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': ['error'] + } + } +]) diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 4fd3eac..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,76 +0,0 @@ -import { defineConfig, globalIgnores } from "eslint/config"; -import typescriptEslint from "@typescript-eslint/eslint-plugin"; -import globals from "globals"; -import tsParser from "@typescript-eslint/parser"; -import github from "eslint-plugin-github"; - -export default defineConfig([ - globalIgnores(["**/dist/", "**/lib/", "**/node_modules/", "**/tests/**/*"]), - github.getFlatConfigs().recommended, - { - plugins: { - "@typescript-eslint": typescriptEslint, - }, - - files: ["packages/**/*.ts"], - - languageOptions: { - globals: globals.node, - - parser: tsParser, - ecmaVersion: 9, - sourceType: "module", - - parserOptions: { - project: "./tsconfig.json", - }, - }, - - rules: { - "eslint-comments/no-use": "off", - "import/no-namespace": "off", - "no-constant-condition": "off", - "no-unused-vars": "off", - "i18n-text/no-en": "off", - "@typescript-eslint/no-unused-vars": "error", - - "@typescript-eslint/explicit-member-accessibility": ["error", { - accessibility: "no-public", - }], - - "@typescript-eslint/no-require-imports": "error", - "@typescript-eslint/array-type": "error", - "@typescript-eslint/await-thenable": "error", - camelcase: "off", - - "@typescript-eslint/explicit-function-return-type": ["error", { - allowExpressions: true, - }], - - "@typescript-eslint/no-array-constructor": "error", - "@typescript-eslint/no-empty-interface": "error", - "@typescript-eslint/no-explicit-any": "warn", - "@typescript-eslint/no-extraneous-class": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-for-in-array": "error", - "@typescript-eslint/no-inferrable-types": "error", - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "error", - "@typescript-eslint/no-non-null-assertion": "warn", - "@typescript-eslint/no-unnecessary-qualifier": "error", - "@typescript-eslint/no-unnecessary-type-assertion": "error", - "@typescript-eslint/no-useless-constructor": "error", - "@typescript-eslint/no-var-requires": "error", - "@typescript-eslint/prefer-for-of": "warn", - "@typescript-eslint/prefer-function-type": "warn", - "@typescript-eslint/prefer-includes": "error", - "@typescript-eslint/prefer-string-starts-ends-with": "error", - "@typescript-eslint/promise-function-async": "error", - "@typescript-eslint/require-array-sort-compare": "error", - "@typescript-eslint/restrict-plus-operands": "error", - "@typescript-eslint/unbound-method": "error", - "no-shadow": "off", - "@typescript-eslint/no-shadow": ["error"], - }, - }, -]); \ No newline at end of file