Centralize ESLint into a single root config
Replace the duplicated per-workspace eslint.config.mjs files in apps/console, apps/trust, packages/ui, and packages/eslint-config with one root eslint.config.mjs that reuses the shared @probo/eslint-config rule sets and scopes them per directory. Linting now runs from the repo root, so pin the type-checked project service root and broaden the import-x resolver to every workspace tsconfig (the #/* aliases live in each app's tsconfig.app.json). Drop the now-redundant per-package lint scripts and lint-only devDeps, and add a root lint script that runs eslint over the four dirs with multithreading restored via --concurrency auto, then lints n8n-node through a direct workspace call. packages/n8n-node keeps its own external preset. Collapse the redundant lint-js -> npm-lint Makefile chain into a single lint-js target and update the make docs accordingly. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
import { defineConfig } from "eslint/config";
|
||||
|
||||
import { baseConfigs } from "#baseConfigs";
|
||||
import { importsConfigs } from "#importsConfigs";
|
||||
import { nodeLanguageOptionsConfigs } from "#languageOptionsConfigs";
|
||||
import { stylisticConfigs } from "#stylisticConfigs";
|
||||
import { tsConfigs } from "#tsConfigs";
|
||||
|
||||
export default defineConfig([
|
||||
...baseConfigs,
|
||||
...tsConfigs,
|
||||
...importsConfigs,
|
||||
...stylisticConfigs,
|
||||
...nodeLanguageOptionsConfigs,
|
||||
]);
|
||||
@@ -19,9 +19,7 @@
|
||||
"#languageOptionsConfigs": "./src/languageOptionsConfigs.ts",
|
||||
"#stylisticConfigs": "./src/stylisticConfigs.ts"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint src"
|
||||
},
|
||||
"scripts": {},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
|
||||
@@ -47,7 +47,12 @@ export const importsConfigs: FlatConfig.ConfigArray = [
|
||||
settings: {
|
||||
"import-x/resolver-next": createTypeScriptImportResolver({
|
||||
alwaysTryTypes: true,
|
||||
project: "tsconfig.json",
|
||||
// Linting runs from the repo root, so resolve every workspace's
|
||||
// tsconfig rather than a single cwd-relative one. The `#/*` path
|
||||
// aliases live in the per-app `tsconfig.app.json`, so match all
|
||||
// tsconfig variants, not just the references-only `tsconfig.json`.
|
||||
project: ["apps/*/tsconfig*.json", "packages/*/tsconfig*.json"],
|
||||
noWarnOnMultipleProjects: true,
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user