Convert clients/js to oxlint and oxfmt - #646
Merged
joncinque merged 1 commit intoAug 28, 2026
Merged
Conversation
Replaces ESLint + Prettier with oxlint and oxfmt for the clients/js package. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
joncinque
approved these changes
Aug 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces ESLint + Prettier with oxlint and oxfmt for the
clients/jspackage, following the same migration applied across the othersolana-programJS clients (token-group#115, token-metadata, libraries, memo, record, single-pool, stake-pool, token-2022).Changes
clients/js/package.json: droppedeslint,@eslint/js,eslint-config-prettier,typescript-eslint, andprettier; addedoxlintandoxfmt. Scripts now run the Oxc tools (preserving this package's existing script names):lint→oxlint srclint:fix→oxlint --fix srcformat→oxfmt --write .format:check→oxfmt --check ..oxlintrc.json(new):correctnesscategory as errors, withsrc/generatedignored (matching the old ESLintignores)..oxfmtrc.json(new): migrated from the workspace's@solana/prettier-config-solanaviaoxfmt --migrate=prettier(printWidth 120, tabWidth 4, single quotes,arrowParens: avoid); the.prettierignorepatterns (node_modules,dist,src/generated/**) were migrated intoignorePatterns.eslint.config.mjsand.prettierignore.pnpm-lock.yaml.Note on lint coverage
The previous
eslint.config.mjsused typescript-eslint's type-aware presets (strictTypeChecked+stylisticTypeCheckedwithprojectService). oxlint does not perform type-aware linting, so the type-checked rules (e.g.no-floating-promises,no-unsafe-*,no-misused-promises,no-unnecessary-condition) are not carried over — this is a best-effort swap that keeps oxlint'scorrectnesscategory. If preserving those rules matters, oxlint's experimental type-aware linting (tsgolint) could be enabled in a follow-up, or ESLint could be kept solely for type-aware checks.The shared
@solana/prettier-config-solanain the rootpackage.jsonis intentionally left in place, since codama (generate:clients) still relies on it to format generated output.Verification
pnpm lint(oxlint, clean;src/generatedcorrectly ignored),pnpm format:check(17 files, no reformatting), andpnpm build(tsc && tsup) all succeed.pnpm testis a no-op (exit 0) in this package. A rootpnpm install --frozen-lockfileis consistent with the updated lockfile.🤖 Generated with Claude Code