-
Notifications
You must be signed in to change notification settings - Fork 257
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: migrates to eslint 9 & flat config (#968)
## Description - bumps linting setup to eslint 9 - migrates (both) eslint configurations to 'flat config' - The _complexity_ calculation changed, so I've set the max allowed complexity a little bit higher (to 10; eslint's default is 20 (!) - previously _we_ used 6). Our eslint-config-moving-meadow configuration is still non-flat, so @eslint/migrate-config wrapped it in a _compat_ call, which is fine for now. ## Motivation and Context eslint 8 is EOL and won't be supported any longer. An alternative till eslint 10 is setting the [ESLINT_USE_FLAT_CONFIG environment variable to false](https://eslint.org/docs/latest/use/migrate-to-9.0.0#flat-config), but that still made eslint emit a warning message on each run + we had to do the work anyway, eventually. ## How Has This Been Tested? - [x] green ci ## Types of changes - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Documentation only change - [ ] Refactor (non-breaking change which fixes an issue without changing functionality) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Chore ## Checklist - [x] 📖 - My change doesn't require a documentation update, or ... - it _does_ and I have updated it - [x] ⚖️ - The contribution will be subject to [The MIT license](https://github.com/sverweij/dependency-cruiser/blob/main/LICENSE), and I'm OK with that. - The contribution is my own original work. - I am ok with the stuff in [**CONTRIBUTING.md**](https://github.com/sverweij/dependency-cruiser/blob/main/.github/CONTRIBUTING.md).
- Loading branch information
Showing
33 changed files
with
869 additions
and
1,212 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
import path from "node:path"; | ||
import { fileURLToPath } from "node:url"; | ||
import typescriptEslint from "@typescript-eslint/eslint-plugin"; | ||
import tsParser from "@typescript-eslint/parser"; | ||
import globals from "globals"; | ||
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 [ | ||
{ | ||
ignores: [ | ||
"**/.pnp.cjs", | ||
"**/.yarn", | ||
"**/node_modules", | ||
"**/coverage", | ||
"**/tmp", | ||
"src/**/*.schema.mjs", | ||
"src/report/dot-webpage/svg-in-html-snippets/script.cjs", | ||
"test/integration/**/*", | ||
"test/*/__fixtures__/**/*", | ||
"test/*/*/__fixtures__/**/*", | ||
"test/*/*/*/__fixtures__/**/*", | ||
"test/*/__mocks__/**/*", | ||
"test/*/*/__mocks__/**/*", | ||
"types/**/*", | ||
], | ||
}, | ||
...compat.extends("moving-meadow", "plugin:@typescript-eslint/recommended"), | ||
{ | ||
plugins: { | ||
"@typescript-eslint": typescriptEslint, | ||
}, | ||
|
||
languageOptions: { | ||
parser: tsParser, | ||
ecmaVersion: 2021, | ||
sourceType: "script", | ||
}, | ||
|
||
rules: { | ||
"@typescript-eslint/no-explicit-any": "off", | ||
"@typescript-eslint/no-var-requires": "off", | ||
"@typescript-eslint/no-unused-vars": "off", | ||
"no-unused-vars": "off", | ||
"budapestian/global-constant-pattern": "off", | ||
"security/detect-non-literal-fs-filename": "off", | ||
"import/exports-last": "off", | ||
"import/no-unresolved": "off", | ||
"@typescript-eslint/no-require-imports": "off", | ||
"no-param-reassign": "error", | ||
"n/no-missing-import": "off", | ||
"n/no-missing-require": "off", | ||
"unicorn/no-empty-file": "off", | ||
"unicorn/no-useless-fallback-in-spread": "off", | ||
// eslint-disable-next-line no-magic-numbers | ||
complexity: ["warn", { max: 10, variant: "classic" }], | ||
}, | ||
}, | ||
{ | ||
files: ["**/*.d.ts"], | ||
|
||
rules: { | ||
"init-declarations": "off", | ||
}, | ||
}, | ||
{ | ||
files: ["test/**/*.{js,mjs,cjs}"], | ||
|
||
languageOptions: { | ||
globals: { | ||
...globals.mocha, | ||
}, | ||
}, | ||
|
||
rules: { | ||
complexity: "off", | ||
"max-lines": "off", | ||
"max-lines-per-function": "off", | ||
"no-prototype-builtins": "off", | ||
|
||
"mocha/valid-suite-description": [ | ||
"error", | ||
{ | ||
pattern: "^\\[[EIU]\\]", | ||
suiteNames: ["describe"], | ||
message: | ||
"start suite titles with [E], [I] or [U] to mark them as E2E, Integration or Unit test suite", | ||
}, | ||
], | ||
}, | ||
}, | ||
{ | ||
files: ["**/*.mjs"], | ||
|
||
rules: { | ||
"n/no-unsupported-features/es-syntax": "off", | ||
}, | ||
}, | ||
]; |
Oops, something went wrong.