Skip to content

chore(deps): upgrade ESLint 8 → 10 (flat config) and chai 4 → 6#1934

Merged
ryanio merged 2 commits intomainfrom
chore/upgrade-eslint-chai
Mar 11, 2026
Merged

chore(deps): upgrade ESLint 8 → 10 (flat config) and chai 4 → 6#1934
ryanio merged 2 commits intomainfrom
chore/upgrade-eslint-chai

Conversation

@ryanio
Copy link
Collaborator

@ryanio ryanio commented Mar 11, 2026

Summary

  • ESLint 8 → 10: Migrated to flat config format (eslint.config.mjs), removed .eslintrc.js. Replaced eslint-plugin-import with eslint-plugin-import-x (maintained fork compatible with ESLint 10). Added typescript-eslint unified package for flat config support. Installed globals package to replace env configuration.
  • chai 4 → 6: Upgraded to chai v6 which is ESM-only and includes built-in TypeScript types. Removed @types/chai as it is no longer needed.
  • Removed --ext .js,.ts flag from eslint scripts (not supported in flat config)
  • Disabled import-x/no-unused-modules rule (uses internal ESLint APIs removed in v10)
  • Added test file overrides for @typescript-eslint/no-unused-expressions (chai assertions) and import-x/namespace (sinon)
  • Removed stale eslint-disable comments for the old import/no-unused-modules rule

Test results

  • npx eslint . --max-warnings 0 — passes clean (0 errors, 0 warnings)
  • npm test — 571 passing, 1 failing (pre-existing failure due to missing typechain generated code, same on base branch)
  • npx tsc --noEmit — same pre-existing typechain error as base branch

Dependencies

This PR is based on #1933 (low-risk dep upgrades).

🤖 Generated with Claude Code

@socket-security
Copy link

socket-security bot commented Mar 11, 2026

Base automatically changed from chore/upgrade-all-deps to main March 11, 2026 20:38
ryanio and others added 2 commits March 11, 2026 13:38
Migrate ESLint to flat config format (eslint.config.mjs), remove
.eslintrc. Upgrade chai to v6 which includes built-in TypeScript
types, remove @types/chai.

- Replace eslint-plugin-import with eslint-plugin-import-x (ESLint 10 compatible fork)
- Add typescript-eslint unified package for flat config support
- Disable import-x/no-unused-modules (incompatible with ESLint 10)
- Add test file overrides for chai expressions and sinon namespace
- Remove --ext flag from eslint scripts (not supported in flat config)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add .claude/** to ESLint ignores (worktree dirs were being linted)
- Remove unused eslint-disable directive in assets.ts (import-x/no-unresolved)
- Re-add @types/chai (chai 6 does not ship built-in types)
- Auto-fix prettier formatting in eslint.config.mjs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ryanio ryanio force-pushed the chore/upgrade-eslint-chai branch from d3adfef to 93eb9db Compare March 11, 2026 20:41
@ryanio ryanio merged commit ef467d2 into main Mar 11, 2026
8 checks passed
@ryanio ryanio deleted the chore/upgrade-eslint-chai branch March 11, 2026 20:44
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