Skip to content

chore: migrate to ESLint 10 flat config#59

Merged
alphacrack merged 1 commit into
mainfrom
chore/eslint-flat-config
Jul 21, 2026
Merged

chore: migrate to ESLint 10 flat config#59
alphacrack merged 1 commit into
mainfrom
chore/eslint-flat-config

Conversation

@alphacrack

Copy link
Copy Markdown
Owner

Migrates the lint setup from legacy .eslintrc.js to flat config (eslint.config.mjs), preserving every rule and severity 1:1.

Toolchain changes

The lockfile was regenerated from scratch (the incremental upgrade hit ERESOLVE against the old tree), hence the large lock diff.

Verification

  • npm run lint: 0 errors (13 pre-existing warnings, same severities as before)
  • npm run build (jsii): clean
  • npm test: 34/34
  • npm run format:check: clean

Closes #35. Dependabot should auto-resolve #9, #14, and #16 once this merges. This also unblocks re-testing #13 (TS 6), since typescript-eslint 8.60 supports TypeScript <6.1.

🤖 Generated with Claude Code

Replaces .eslintrc.js with eslint.config.mjs, preserving every rule and
severity from the legacy config. Toolchain bumps required by the
migration:

- eslint 8.57 -> 10.x
- @typescript-eslint/eslint-plugin + parser 6.x -> 8.x
- eslint-plugin-jest 27 -> 29
- eslint-config-prettier 9 -> 10
- eslint-plugin-import (ESLint 9 max) replaced by eslint-plugin-import-x,
  registered under the same "import" rule namespace

Closes #35

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the dependencies Dependency updates label Jul 21, 2026
@alphacrack
alphacrack merged commit bdb6e54 into main Jul 21, 2026
13 checks passed
alphacrack added a commit that referenced this pull request Jul 21, 2026
Supersedes the Dependabot PR, which could not rebase after the lockfile
regeneration in #59. TypeScript 6.0 required two tsconfig.spec.json
fixes:

- module 'commonjs' + moduleResolution 'node': the legacy node10
  resolution was removed in TS 6; switched to module 'node20' (matching
  the jsii 6-generated tsconfig).
- baseUrl: hard-deprecated in TS 6 (TS5101); removed, with the paths
  alias made explicitly relative.
- types: TS 6 no longer auto-includes @types packages under this setup;
  declared ['jest', 'node'] explicitly. Previously ts-jest swallowed the
  TS5101 config error and silently compiled without types.

Verified: tsc -p tsconfig.spec.json clean, 34/34 tests, jsii build
clean, lint clean.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to ESLint flat config to unblock ESLint 10 / typescript-eslint 8 / eslint-plugin-jest 29

1 participant