ci: switch linting from ESLint to Oxlint #29

Merged
uwayss merged 3 commits from claude/switch-to-oxlint into develop 2026-09-01 10:45:02 +00:00
Owner

Replaces eslint-config-expo with oxlint-config-universe/native for ~20x
faster lint runs, keeping type-aware no-deprecated via oxlint-tsgolint
and the existing scoped no-console rule. eslint-plugin-expo's 4 rules
(no-dynamic-env-var, no-env-var-destructuring, prefer-box-shadow,
use-dom-exports) have no Oxlint equivalent yet and are dropped; none are
currently triggered in this codebase. Prettier keeps handling formatting
separately, as it already did.

The native preset also turns on a handful of rules eslint-config-expo
never enabled (curly, no-void, react/jsx-curly-brace-presence,
react/immutability, no-floating-promises, require-array-sort-compare).
Disabled for now to keep this a pure engine swap with zero new warnings;
worth adopting deliberately in a follow-up.

Closes #15

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Replaces eslint-config-expo with oxlint-config-universe/native for ~20x faster lint runs, keeping type-aware `no-deprecated` via oxlint-tsgolint and the existing scoped `no-console` rule. eslint-plugin-expo's 4 rules (no-dynamic-env-var, no-env-var-destructuring, prefer-box-shadow, use-dom-exports) have no Oxlint equivalent yet and are dropped; none are currently triggered in this codebase. Prettier keeps handling formatting separately, as it already did. The native preset also turns on a handful of rules eslint-config-expo never enabled (curly, no-void, react/jsx-curly-brace-presence, react/immutability, no-floating-promises, require-array-sort-compare). Disabled for now to keep this a pure engine swap with zero new warnings; worth adopting deliberately in a follow-up. Closes #15 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ci: switch linting from ESLint to Oxlint
All checks were successful
Checks / checks (pull_request) Successful in 1m37s
c2ed72a5a0
Replaces eslint-config-expo with oxlint-config-universe/native for ~20x
faster lint runs, keeping type-aware `no-deprecated` via oxlint-tsgolint
and the existing scoped `no-console` rule. eslint-plugin-expo's 4 rules
(no-dynamic-env-var, no-env-var-destructuring, prefer-box-shadow,
use-dom-exports) have no Oxlint equivalent yet and are dropped; none are
currently triggered in this codebase. Prettier keeps handling formatting
separately, as it already did.

The native preset also turns on a handful of rules eslint-config-expo
never enabled (curly, no-void, react/jsx-curly-brace-presence,
react/immutability, no-floating-promises, require-array-sort-compare).
Disabled for now to keep this a pure engine swap with zero new warnings;
worth adopting deliberately in a follow-up.

Closes #15

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
lint: enable oxlint-config-universe strict rules, fix findings
All checks were successful
Checks / checks (pull_request) Successful in 24s
38fe4f725c
Re-enables curly, react/jsx-curly-brace-presence, no-void,
typescript/no-floating-promises, and typescript/require-array-sort-compare,
which were disabled in the ESLint->Oxlint migration to keep it a clean
engine swap. Fixes:

- curly, jsx-curly-brace-presence: autofixed (brace style, redundant JSX
  string braces), then reformatted with prettier.
- no-void: kept enabled with allowAsStatement, since void as a statement
  is exactly how this codebase already marks intentionally-unawaited
  promises (see no-floating-promises fixes below).
- no-floating-promises: marked fire-and-forget calls (haptics, reminder
  scheduling, app init) with void to make the intent explicit.
- require-array-sort-compare: found and fixed a real bug -
  ConfigureFrequencyScreen sorted day-of-week numbers with the default
  lexicographic sort.

react/immutability stays disabled: it flags react-native-reanimated's
useSharedValue().value mutations, which are that library's documented
API, not a bug. Fixing it would mean fighting the animation library's
design, not the app's code.
claude-bot force-pushed claude/switch-to-oxlint from 38fe4f725c
All checks were successful
Checks / checks (pull_request) Successful in 24s
to a5e34b763f
All checks were successful
Checks / checks (pull_request) Successful in 36s
2026-09-01 10:40:24 +00:00
Compare
uwayss merged commit 41fe1942b9 into develop 2026-09-01 10:45:02 +00:00
uwayss deleted branch claude/switch-to-oxlint 2026-09-01 10:45:03 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
uwayss/muhsin!29
No description provided.