chore(lint): drop ESLint in favor of oxlint - #25
Merged
Merged
Conversation
Both packages already ran oxlint alongside ESLint. Retire the ESLint configs/deps entirely and move their custom rules (no-empty allowEmptyCatch, no-unused-vars underscore ignores, react/set-state-in-effect and react/incompatible-library off) into .oxlintrc.jsonc, enabling the react plugin for packages/frame. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.
What does this PR do?
Both packages ran ESLint and oxlint side by side. Since oxlint already covers TypeScript/React lint here, this drops ESLint entirely: removes
eslint.config.tsfrompackages/devicesandpackages/frame, drops theeslint/typescript-eslint/eslint-plugin-*/jiti/globalsdevDependencies, and moves the custom rules into.oxlintrc.jsonc(enabling thereactplugin,no-emptywithallowEmptyCatch,no-unused-varsunderscore ignores,react/set-state-in-effectandreact/incompatible-libraryoff).lintis now justoxlint .at the root; per-packagelintscripts are gone.vite/vitest were already on v8 (
vite@8.2.2,@vitest/coverage-v8), so no change needed there.How was this verified?
pnpm lint— exit 0. One new warning from the newly-enabled react plugin atpackages/frame/src/react/index.tsx:173(writing to a ref during render, an intentional pattern with an existing comment explaining why); not addressed in this PR since it's a pre-existing pattern, not a regression.pnpm check-types— exit 0.pnpm test— exit 0, all suites pass (374 frame tests, devices tests, 13 script tests).Checklist
pnpm lintpasses with zero warnings — one pre-existing-pattern warning remains, see aboveCHANGELOG.mdupdated under## [Unreleased]— n/a, not user-facing🤖 Generated with Claude Code