Skip to content

chore: migrate to Node 26, pnpm, TypeScript 7, and OXC toolchain#54

Merged
LMaxence merged 3 commits into
mainfrom
chore/node26-oxc-pnpm-ts7
Jun 25, 2026
Merged

chore: migrate to Node 26, pnpm, TypeScript 7, and OXC toolchain#54
LMaxence merged 3 commits into
mainfrom
chore/node26-oxc-pnpm-ts7

Conversation

@LMaxence

Copy link
Copy Markdown
Owner

Summary

This PR modernises the entire dev toolchain without touching the public API. No breaking changes — semver patch bump is appropriate.

Runtime & package manager

  • Node 26.4.0 — bumped from 22.12.0 (Volta pin + CI)
  • pnpm 10.12.1 — replaces npm; package-lock.json removed, pnpm-lock.yaml added; CI updated with pnpm/action-setup@v4

TypeScript

  • TypeScript 7.0.1-rc — replaces 5.8; tsc now runs the native Go compiler under the hood
  • erasableSyntaxOnly: true — enforces that all TS syntax can be stripped without transformation, aligning with Node's native type-stripping
  • @tsconfig/node24 — replaces @tsconfig/node22 (@tsconfig/node26 requires es2025 lib/target not yet supported by any stable tsc)
  • rootDir: "./lib" — TypeScript 7 now requires this to be explicit when include is a subdirectory

Source changes required by erasableSyntaxOnly

  • lib/levels.ts: const enum HellogLevelconst object + type alias (same runtime string values)
  • lib/hellog.ts: constructor parameter property → explicit field declaration
  • lib/plugins.ts: same; also removed stale eslint-disable comments

Linting & formatting

  • ESLint + Prettier removedeslint, @eslint/js, typescript-eslint, prettier all gone
  • oxlint 1.71.0 — replaces ESLint; config in .oxlintrc.json
  • oxfmt 0.56.0 — replaces Prettier; config in .oxfmtrc.json (preserves singleQuote + trailingComma: all)
  • VS Code recommendations updated: ESLint + Prettier extensions replaced with oxc.oxc-vscode

Misc

  • lcov.info added to .gitignore

Test plan

  • pnpm run format:check — passes
  • pnpm run lint — passes
  • pnpm run build — passes (tsc 7)
  • pnpm test — 17/17 tests pass

🤖 Generated with Claude Code

LMaxence and others added 3 commits June 25, 2026 08:09
- Node 26.4.0 (from 22.12.0)
- pnpm replaces npm
- TypeScript 7.0.1-rc with erasableSyntaxOnly
- oxlint + oxfmt replace ESLint + Prettier
@LMaxence LMaxence merged commit ab8df56 into main Jun 25, 2026
2 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 3.5.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant