Skip to content

chore: upgrade ESLint 8 to 10 with flat config - #563

Merged
sebastienfontaine merged 2 commits into
masterfrom
chore/eslint-10
Oct 14, 2026
Merged

sebastienfontaine merged 2 commits into
masterfrom
chore/eslint-10

Conversation

@sebastienfontaine

Copy link
Copy Markdown
Contributor

Stacked on #562 (uses its lint script and CI job). GitHub will retarget this PR to master once #562 is merged.

Changes

  • ESLint 8 → 10: .eslintrc.cjs replaced by eslint.config.js (flat config), with the same rule set: eslint:recommended, typescript-eslint recommended, eslint-plugin-vue recommended, Prettier, and the same custom rules. Dropped @typescript-eslint/interface-name-prefix, which no longer exists.
  • typescript-eslint 8 used directly, instead of @vue/eslint-config-typescript. That wrapper pulls fast-glob → micromatch → braces, and braces has a high-severity advisory with no fixed version.
  • eslint-plugin-vue 10, vue-eslint-parser 10, eslint-config-prettier 10, eslint-plugin-prettier 5.5.
  • Removed eslint-plugin-import (unused) and the separate @typescript-eslint/* packages.
  • package-lock.json regenerated: npm could not resolve the upgrade from the ESLint 8 tree. Other packages stay within their current major.

Code fixes for the new rules (no behaviour change)

  • 6 × unused catch (e) bindings → catch {} (typescript-eslint 8 checks caught errors).
  • 3 × errors rethrown in a catch now carry { cause } (preserve-caught-error, new in ESLint 10). This needs lib: ES2022 in tsconfig.json (types only; Chrome supports Error.cause since v93).

Vulnerabilities

npm audit: 15 → 7. The 7 left all come from Tailwind 3 (chokidar, micromatch, braces, postcss-nested), handled in the Tailwind 4 PR.

Tested

ESLint, Prettier, vue-tsc, 226 tests and npm run build all pass locally.

Adds lint and format:check npm scripts and a Lint & Type Check job,
so the codebase stays clean after the cleanup in #561.
- .eslintrc.cjs -> eslint.config.js (flat config), same rules
- typescript-eslint 8 used directly instead of @vue/eslint-config-typescript,
  whose fast-glob -> micromatch -> braces chain has no fixed version
- eslint-plugin-vue 10, vue-eslint-parser 10, eslint-config-prettier 10
- remove unused eslint-plugin-import
- fix new errors: unused catch bindings, and { cause } on rethrown errors
  (preserve-caught-error), which needs lib ES2022 in tsconfig
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 57.01% 593 / 1040
🔵 Statements 57.48% 626 / 1089
🔵 Functions 64.02% 121 / 189
🔵 Branches 52.53% 290 / 552
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/background/TabRulesService.ts 83.9% 91.66% 78.57% 82.5% 31-33, 62-69, 86, 124, 150-151, 164-169, 183, 196, 247
src/common/regex-safety.ts 92% 100% 100% 92% 74-75
src/content/RegexService.ts 100% 88.88% 100% 100%
src/content/TitleService.ts 97.46% 86.36% 100% 97.26% 59-60
src/stores/rules.store.ts 25.49% 11.32% 27.27% 25.2% 30-149, 167-192, 201-288, 305-338, 351-357, 364, 390-470, 486-492, 499, 508, 516, 531-538
Generated in workflow #470 for commit a155b83 by the Vitest Coverage Report Action

@sebastienfontaine
sebastienfontaine deleted the branch ci/add-lint-job October 14, 2026 18:08
@sebastienfontaine
sebastienfontaine changed the base branch from ci/add-lint-job to master October 14, 2026 18:11
@github-actions

Copy link
Copy Markdown

📦 Extension Build Ready!

Version: 1.1.6

📥 Download Extension (tabee.zip)

Installation

  1. Download and extract the zip file
  2. Open Chrome → chrome://extensions/
  3. Enable "Developer mode" (top right)
  4. Click "Load unpacked" → Select the extracted folder

Status

  • ✅ All tests passed
  • ✅ Build successful
  • ✅ Ready for testing

🤖 Auto-generated by GitHub Actions

@sebastienfontaine
sebastienfontaine merged commit 1c5ec3a into master Oct 14, 2026
13 checks passed
@sebastienfontaine
sebastienfontaine deleted the chore/eslint-10 branch October 14, 2026 18:13
@sebastienfontaine sebastienfontaine mentioned this pull request Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant