From e77b25c8ad378c73c9e6a1c1a154631714f22cf2 Mon Sep 17 00:00:00 2001 From: Kai Koenig Date: Thu, 2 Apr 2026 16:21:37 +1300 Subject: [PATCH] chore: complete ESLint 10 config cleanup and unify stylistic plugins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update config references: recommended-flat → recommended - Remove deprecated @stylistic/eslint-plugin-ts (merged into unified plugin) - Migrate @stylistic/ts/* rules to @stylistic/* - Bump typescript-eslint 8.56.0 → 8.58.0 - Bump @stylistic/eslint-plugin 5.9.0 → 5.10.0 - Bump eslint-plugin-tsdoc 0.5.0 → 0.5.2 Completes the ESLint 10 migration started by Dependabot PRs #168 and #161, which only bumped package versions without updating configs. --- eslint.config.mjs | 2 +- package-lock.json | 30 ++++++------------------------ package.json | 7 +++---- tseslint.config.mjs | 16 ++++++---------- 4 files changed, 16 insertions(+), 39 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 335b273..1065d37 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,7 +5,7 @@ export default [ // Basic eslint rules eslint.configs.recommended, // Codestyle rules for JS - stylistic.configs["recommended-flat"], + stylistic.configs["recommended"], { languageOptions: { // Add node globals to ignore undefined diff --git a/package-lock.json b/package-lock.json index b0cbe38..a609b00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,18 +14,17 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@stylistic/eslint-plugin": "^5.9.0", - "@stylistic/eslint-plugin-ts": "^4.2.0", + "@stylistic/eslint-plugin": "^5.10.0", "@types/node": "^25.3.0", "eslint": "^10.1.0", - "eslint-plugin-tsdoc": "^0.5.0", + "eslint-plugin-tsdoc": "^0.5.2", "express": "^5.2.1", "http-terminator": "^3.2.0", "prettier": "^3.8.1", "tap": "^21.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.56.0" + "typescript-eslint": "^8.58.0" } }, "node_modules/@alcalzone/ansi-tokenize": { @@ -724,9 +723,9 @@ } }, "node_modules/@stylistic/eslint-plugin": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.9.0.tgz", - "integrity": "sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.10.0.tgz", + "integrity": "sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -744,23 +743,6 @@ "eslint": "^9.0.0 || ^10.0.0" } }, - "node_modules/@stylistic/eslint-plugin-ts": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-4.4.1.tgz", - "integrity": "sha512-2r6cLcmdF6til66lx8esBYvBvsn7xCmLT50gw/n1rGGlTq/OxeNjBIh4c3VEaDGMa/5TybrZTia6sQUHdIWx1w==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "^8.32.1", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": ">=9.0.0" - } - }, "node_modules/@tapjs/after": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-3.3.4.tgz", diff --git a/package.json b/package.json index 230011b..27c688c 100644 --- a/package.json +++ b/package.json @@ -18,18 +18,17 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@stylistic/eslint-plugin": "^5.9.0", - "@stylistic/eslint-plugin-ts": "^4.2.0", + "@stylistic/eslint-plugin": "^5.10.0", "@types/node": "^25.3.0", "eslint": "^10.1.0", - "eslint-plugin-tsdoc": "^0.5.0", + "eslint-plugin-tsdoc": "^0.5.2", "express": "^5.2.1", "http-terminator": "^3.2.0", "prettier": "^3.8.1", "tap": "^21.6.2", "ts-node": "^10.9.2", "typescript": "^5.9.2", - "typescript-eslint": "^8.56.0" + "typescript-eslint": "^8.58.0" }, "dependencies": { "@types/aws-lambda": "^8.10.160", diff --git a/tseslint.config.mjs b/tseslint.config.mjs index 36b3fed..a6bbfc5 100644 --- a/tseslint.config.mjs +++ b/tseslint.config.mjs @@ -2,7 +2,6 @@ import eslint from '@eslint/js'; import stylistic from '@stylistic/eslint-plugin'; -import stylisticTs from '@stylistic/eslint-plugin-ts'; import tseslint from 'typescript-eslint'; import tsdocPlugin from 'eslint-plugin-tsdoc'; @@ -10,9 +9,7 @@ export default tseslint.config( // Basic eslint rules eslint.configs.recommended, // Codestyle rules for JS - stylistic.configs["recommended-flat"], - // Codestyle rules for TS - stylisticTs.configs["all-flat"], + stylistic.configs["recommended"], // Eslint rules for TS ...tseslint.configs.recommended, { @@ -51,9 +48,9 @@ export default tseslint.config( // Stick to double quotes "@stylistic/quotes": ["error", "double"], // Always indent with two spaces - '@stylistic/ts/indent': ['error', 2], + "@stylistic/indent": ["error", 2], // Enforce curly braces spacing - "@stylistic/ts/object-curly-spacing": ["error", "always"], + "@stylistic/object-curly-spacing": ["error", "always"], // Enforce "one true brace style" "@stylistic/brace-style": ["error", "1tbs"], // Enforce parenthesis in functions: "(a) => a" @@ -63,10 +60,9 @@ export default tseslint.config( "@stylistic/no-mixed-operators": ["off", 0], "@stylistic/operator-linebreak": ["off", 0], "@stylistic/quote-props": ["off", 0], - "@stylistic/ts/comma-dangle": ["off", 0], - "@stylistic/ts/no-extra-parens": ["off", 0], - "@stylistic/ts/quote-props": ["off", 0], - "@stylistic/ts/space-before-function-paren": ["off", 0], + "@stylistic/comma-dangle": ["off", 0], + "@stylistic/no-extra-parens": ["off", 0], + "@stylistic/space-before-function-paren": ["off", 0], // Documentation format check "tsdoc/syntax": "warn" }