From 786a48b3c67bd64adb1b483798ad804c8b98464b Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Tue, 6 Aug 2024 23:05:46 -0400 Subject: [PATCH] map2tree --- eslint.ts.config.base.mjs | 2 +- eslint.ts.jest.config.base.mjs | 64 ++++++++++++++++++++++++++++++ packages/map2tree/.eslintignore | 1 - packages/map2tree/.eslintrc.cjs | 21 ---------- packages/map2tree/eslint.config.js | 16 ++++++++ packages/map2tree/package.json | 7 +--- pnpm-lock.yaml | 18 --------- 7 files changed, 82 insertions(+), 47 deletions(-) create mode 100644 eslint.ts.jest.config.base.mjs delete mode 100644 packages/map2tree/.eslintignore delete mode 100644 packages/map2tree/.eslintrc.cjs create mode 100644 packages/map2tree/eslint.config.js diff --git a/eslint.ts.config.base.mjs b/eslint.ts.config.base.mjs index a63bf658..07e55f83 100644 --- a/eslint.ts.config.base.mjs +++ b/eslint.ts.config.base.mjs @@ -19,7 +19,7 @@ export default (tsconfigRootDir) => [ files: ['**/*.ts'], languageOptions: { parserOptions: { - projectService: true, + project: true, tsconfigRootDir, }, }, diff --git a/eslint.ts.jest.config.base.mjs b/eslint.ts.jest.config.base.mjs new file mode 100644 index 00000000..cd81bc09 --- /dev/null +++ b/eslint.ts.jest.config.base.mjs @@ -0,0 +1,64 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import jest from 'eslint-plugin-jest'; +import eslintConfigPrettier from 'eslint-config-prettier'; + +export default (files, tsconfigRootDir, tsconfigFile) => [ + { + files, + ...eslint.configs.recommended, + }, + ...tseslint.configs.recommendedTypeChecked.map((config) => ({ + files, + ...config, + })), + ...tseslint.configs.stylisticTypeChecked.map((config) => ({ + files, + ...config, + })), + { + files, + languageOptions: { + parserOptions: { + project: [tsconfigFile], + tsconfigRootDir, + }, + }, + }, + { + files, + ...jest.configs['flat/recommended'], + }, + { + files, + ...jest.configs['jest/style'], + }, + { + files, + ...eslintConfigPrettier, + }, + { + files, + rules: { + '@typescript-eslint/no-unsafe-return': 'off', + '@typescript-eslint/no-unsafe-assignment': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/prefer-optional-chain': 'off', + '@typescript-eslint/no-base-to-string': 'off', + '@typescript-eslint/consistent-indexed-object-style': 'off', + '@typescript-eslint/prefer-nullish-coalescing': 'off', + '@typescript-eslint/consistent-type-definitions': 'off', + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/prefer-for-of': 'off', + '@typescript-eslint/non-nullable-type-assertion-style': 'off', + '@typescript-eslint/class-literal-property-style': 'off', + '@typescript-eslint/no-redundant-type-constituents': 'off', + '@typescript-eslint/prefer-string-starts-ends-with': 'off', + '@typescript-eslint/no-duplicate-type-constituents': 'off', + '@typescript-eslint/array-type': 'off', + '@typescript-eslint/prefer-function-type': 'off', + }, + }, +]; diff --git a/packages/map2tree/.eslintignore b/packages/map2tree/.eslintignore deleted file mode 100644 index a65b4177..00000000 --- a/packages/map2tree/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -lib diff --git a/packages/map2tree/.eslintrc.cjs b/packages/map2tree/.eslintrc.cjs deleted file mode 100644 index b01386d0..00000000 --- a/packages/map2tree/.eslintrc.cjs +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - extends: '../../eslintrc.js.base.json', - overrides: [ - { - files: ['*.ts'], - extends: '../../eslintrc.ts.jest.base.json', - parserOptions: { - tsconfigRootDir: __dirname, - project: true, - }, - }, - { - files: ['test/**/*.ts'], - extends: '../../eslintrc.ts.jest.base.json', - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.test.json'], - }, - }, - ], -}; diff --git a/packages/map2tree/eslint.config.js b/packages/map2tree/eslint.config.js new file mode 100644 index 00000000..a35dbdd5 --- /dev/null +++ b/packages/map2tree/eslint.config.js @@ -0,0 +1,16 @@ +import eslintJs from '../../eslint.js.config.base.mjs'; +import eslintTs from '../../eslint.ts.config.base.mjs'; +import eslintTsJest from '../../eslint.ts.jest.config.base.mjs'; + +export default [ + ...eslintJs, + ...eslintTs(import.meta.dirname), + ...eslintTsJest( + ['test/**/*.ts'], + import.meta.dirname, + './tsconfig.test.json', + ), + { + ignores: ['lib'], + }, +]; diff --git a/packages/map2tree/package.json b/packages/map2tree/package.json index 4ef59f84..7577b47e 100755 --- a/packages/map2tree/package.json +++ b/packages/map2tree/package.json @@ -31,7 +31,7 @@ "build": "tsc", "clean": "rimraf lib", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js", - "lint": "eslint . --ext .ts", + "lint": "eslint .", "type-check": "tsc --noEmit", "prepack": "pnpm run clean && pnpm run build", "prepublish": "pnpm run lint && pnpm run test" @@ -42,11 +42,6 @@ "devDependencies": { "@types/jest": "^29.5.12", "@types/lodash-es": "^4.17.12", - "@typescript-eslint/eslint-plugin": "^8.0.1", - "@typescript-eslint/parser": "^8.0.1", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jest": "^28.7.0", "immutable": "^4.3.7", "jest": "^29.7.0", "rimraf": "^6.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df1f59d8..676c0929 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -350,9 +350,6 @@ importers: typescript: specifier: ~5.5.4 version: 5.5.4 - typescript-eslint: - specifier: ^8.0.1 - version: 8.0.1(eslint@8.57.0)(typescript@5.5.4) packages/map2tree: dependencies: @@ -366,21 +363,6 @@ importers: '@types/lodash-es': specifier: ^4.17.12 version: 4.17.12 - '@typescript-eslint/eslint-plugin': - specifier: ^8.0.1 - version: 8.0.1(@typescript-eslint/parser@8.0.1)(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': - specifier: ^8.0.1 - version: 8.0.1(eslint@8.57.0)(typescript@5.5.4) - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) - eslint-plugin-jest: - specifier: ^28.7.0 - version: 28.7.0(@typescript-eslint/eslint-plugin@8.0.1)(eslint@8.57.0)(jest@29.7.0)(typescript@5.5.4) immutable: specifier: ^4.3.7 version: 4.3.7