Skip to content

chore: modernize dev toolchain (TypeScript 5.9, vitest 3, tsup 8, ESLint stack)#359

Open
dawsbot wants to merge 1 commit into
masterfrom
chore/modernize-toolchain
Open

chore: modernize dev toolchain (TypeScript 5.9, vitest 3, tsup 8, ESLint stack)#359
dawsbot wants to merge 1 commit into
masterfrom
chore/modernize-toolchain

Conversation

@dawsbot

@dawsbot dawsbot commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary

The dev toolchain was several major versions behind. This bumps it pragmatically, with the smallest source changes needed to keep everything green.

This supersedes the open Dependabot PRs that target the root lockfile — most directly #344 (vite + vitest), and the root-lockfile security bumps (#356 qs, #348 postcss, #335 flatted, #331 minimatch, #330 rollup) whose transitive versions are regenerated here. The /docs-site Dependabot PRs are unaffected.

Version bumps (devDependencies only — zero runtime/consumer impact)

Package From To
typescript ^4.9.4 ^5.9.3
vitest ^0.34.6 ^3.2.7
vite ^4.5.0 ^7.3.6
tsup ^7.2.0 ^8.5.1
typedoc ^0.24.5 ^0.28.20
eslint ^8.16.0 ^8.57.1
@typescript-eslint/* ^5.59.0 ^8.63.0
eslint-plugin-jsdoc ^47.0.2 ^50.8.0
eslint-plugin-vitest ^0.1.5 ^0.5.4
@types/node ^18.16.0 ^22.10.0
@types/eslint ^8.37.0 ^8.56.12

Source/config changes required by the bumps

  • .eslintrc.cjs: plugin:vitest/recommendedplugin:vitest/legacy-recommended (eslint-plugin-vitest ≥0.5 ships flat configs under the old names; the legacy- variant is the eslintrc-format equivalent)
  • src/classes/utils/clean-log.ts: typescript-eslint v8's no-unused-expressions caught a real bug — cleanedLog[key] === false; was a no-op comparison where an assignment was intended. Fixed to cleanedLog[key] = false; (normalizes a null removed field to false, as the surrounding code intends).
  • src/classes/utils/encode-decode-transaction.ts, src/utils/is-address.ts: dropped unused catch bindings (no-unused-vars)
  • readme.md: bundle-size table refresh, auto-generated by the repo's pre-commit hook

Deliberately left out

  • ESLint 9 / flat config: the repo's .eslintrc.cjs (jsdoc overrides, BaseProvider description matcher) migrates fine but would balloon this diff; typescript-eslint v8 + eslint 8.57 work with the existing eslintrc format, so that migration can be its own PR.
  • TypeScript 6.0 / vitest 4.x exist but are bleeding-edge; this PR targets the mature 5.9/3.2 lines.
  • husky ^7, lint-staged ^13, markdown-magic, @size-limit/* left as-is (working, orthogonal to the build/test/type toolchain).

Verification (all run locally)

  • vitest run: 174 passed, 33 failed — the 33 failures are identical on unmodified master (integration tests hitting authenticated RPC endpoints without a local ALCHEMY_API_KEY). Zero regressions.
  • tsup build: success (output sizes unchanged: index.js 43.75 kB)
  • tsgo --noEmit typecheck: clean
  • eslint: 0 errors (warnings are pre-existing)
  • typedoc: generates successfully

🤖 Generated with Claude Code

Bumps the stale dev toolchain:

- typescript ^4.9.4 -> ^5.9.3
- vitest ^0.34.6 -> ^3.2.7 (vite ^4.5.0 -> ^7.3.6)
- tsup ^7.2.0 -> ^8.5.1
- typedoc ^0.24.5 -> ^0.28.20
- eslint ^8.16.0 -> ^8.57.1 (kept eslintrc format; flat-config
  migration deliberately deferred to keep this diff reviewable)
- @typescript-eslint/* ^5.59.0 -> ^8.63.0
- eslint-plugin-jsdoc ^47 -> ^50, eslint-plugin-vitest ^0.1.5 -> ^0.5.4
  (extends switched to plugin:vitest/legacy-recommended, the
  eslintrc-format config in 0.5.x)
- @types/node ^18 -> ^22, @types/eslint ^8.37 -> ^8.56

Source fixes required by typescript-eslint v8 recommended rules:

- clean-log.ts: `cleanedLog[key] === false;` was a no-op comparison
  where an assignment was intended (caught by no-unused-expressions)
- encode-decode-transaction.ts, is-address.ts: drop unused catch
  bindings

Verified: vitest run (174 passed, 33 pre-existing auth failures
identical to master), tsup build, tsgo --noEmit, eslint (0 errors),
typedoc.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
essential-eth Ready Ready Preview, Comment Jul 6, 2026 7:10pm

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