Skip to content

chore: migrate to oxlint, oxfmt and TypeScript 7 - #584

Merged
chybisov merged 14 commits into
mainfrom
chore/oxc-ts7-toolchain
Sep 23, 2026
Merged

chybisov merged 14 commits into
mainfrom
chore/oxc-ts7-toolchain

Conversation

@chybisov

@chybisov chybisov commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Which Linear task is linked to this PR?

Part of EXBE-617

Why was it implemented this way?

Replaces ESLint + Prettier with oxlint + oxfmt (the jumper-frontend setup, without the React/Next parts) and moves to TypeScript 7. typescript-eslint does not run on TypeScript 7, so both changes go together.

  • oxlint: typescript-eslint recommended rules + the four existing custom rules, plus oxlint's default correctness category (bug-catching rules such as no-debugger, no-cond-assign, no-loss-of-precision; it finds nothing in the current code). CI and the pre-commit hook fail on warnings. The two public any types in src/api.ts keep their type and get a disable comment.
  • scripts/prepublishOnly.js refuses to publish when the build output (entry points and the _cjs/_esm type markers) is missing.
  • CI hardening: the pnpm store cache is off unless a read-only job opts in; tests.yaml does not persist the checkout token. LICENSE.md stays verbatim (oxfmt ignores it). VS Code turns on the TypeScript 7 extension (js/ts.experimental.useTsgo).
  • oxfmt: the existing Prettier options; src/ has zero format changes. A separate style: commit formats a few non-source files once.
  • TypeScript 7.0: no tsconfig change needed. The .d.ts output only changes the quote style inside as const tuple types; the .js output is byte-identical.
  • pnpm install no longer builds (prepare removed); the publish workflow, CI and pre-push still build.
  • New tests.yaml runs lint, format check, typecheck and build on PRs.
  • Removed the dead jest.config.js and the unused tsconfig.node.json.

Editor: install the "TypeScript 7" VS Code extension (TypeScriptTeam.native-preview, see README).

Note: git-branch installs ("@lifi/types": "github:lifinance/types#<branch>") no longer build the package (pnpm 10 already blocks them by default). Use a published prerelease instead (release-preview label after part 2).

Part 1 of 2. Part 2 moves releases to Changesets.

Checklist before requesting a review

  • I have performed a self-review and testing of my code.
  • This pull request is focused and addresses a single problem.

@chybisov
chybisov marked this pull request as ready for review September 23, 2026 11:51
@chybisov
chybisov merged commit 8e25ed3 into main Sep 23, 2026
3 checks passed
@chybisov
chybisov deleted the chore/oxc-ts7-toolchain branch September 23, 2026 12:37
@chybisov
chybisov requested a review from melianessa September 24, 2026 10:03
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.

2 participants