Neil
ce687221d3
lint(unicorn): enable prefer-number-properties, prefer-array-find, prefer-array-index-of ( #7516 )
...
Enable three unicorn rules — one correctness, two performance — and fix every
existing violation repo-wide so the rules pass as errors.
prefer-number-properties (76 sites)
- parseInt/parseFloat/NaN -> Number.* : safe aliases (autofixed).
- isNaN -> Number.isNaN (12 sites, hand-converted): global isNaN coerces its
argument, Number.isNaN does not. Verified every call site already passes a
number (Number.parseInt results, number-typed fields, Date.getTime()), so the
conversion is behavior-preserving today and guards against a future non-numeric
argument silently coercing.
prefer-array-find (26 sites)
- .filter(pred)[0] -> .find(pred); .filter(pred).at(-1) / .pop() -> .findLast(pred).
Drops the intermediate array and short-circuits.
prefer-array-index-of (5 sites)
- .findIndex(x => x === v) -> .indexOf(v).
Verified: typecheck (node/cli/web) clean, 53 affected suites pass (1679 tests),
oxlint clean repo-wide. mobile/ uses findLast safely (already ships ES2023
.toReversed()); config scripts and e2e helpers run on Node 24.
2026-07-05 23:56:37 -07:00
..
2026-07-02 23:43:35 -07:00
2026-07-05 23:56:37 -07:00
2026-07-05 21:51:32 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-10 17:23:12 -07:00
2026-06-19 17:14:55 -07:00
2026-06-11 12:46:43 -07:00
2026-07-05 21:51:32 -07:00
2026-06-17 20:05:55 -07:00
2026-06-07 18:16:53 -07:00
2026-07-05 21:51:32 -07:00
2026-06-08 01:00:29 -07:00
2026-07-05 21:51:32 -07:00
2026-06-28 23:13:03 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 23:37:30 -07:00
2026-06-25 23:32:41 -04:00
2026-07-05 21:51:32 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-06-29 22:38:29 -07:00
2026-06-17 20:05:55 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-05-13 18:48:14 -07:00
2026-05-13 18:48:14 -07:00
2026-05-30 22:46:38 -07:00
2026-05-30 22:46:38 -07:00
2026-06-26 02:19:25 -07:00
2026-06-19 17:14:55 -07:00
2026-05-25 22:21:39 -07:00
2026-04-27 20:55:47 -07:00
2026-06-22 16:27:33 -07:00
2026-06-09 20:57:43 -07:00
2026-06-10 13:41:05 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-07-05 19:46:49 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-05-25 16:43:22 -07:00
2026-07-04 23:29:05 -07:00
2026-06-22 12:29:18 -07:00
2026-05-19 00:28:55 -07:00
2026-07-05 19:46:49 -07:00
2026-07-05 19:46:49 -07:00
2026-07-05 21:51:32 -07:00
2026-06-29 22:38:29 -07:00
2026-05-21 01:19:49 -04:00
2026-06-29 22:38:29 -07:00
2026-07-05 19:46:49 -07:00
2026-06-29 22:38:29 -07:00
2026-06-02 22:31:57 -07:00
2026-06-07 17:10:45 -07:00
2026-06-10 21:14:53 -07:00
2026-07-05 19:46:49 -07:00
2026-07-05 19:46:49 -07:00
2026-06-20 18:47:39 -07:00
2026-06-16 18:56:52 -07:00
2026-06-29 22:38:29 -07:00
2026-07-04 22:56:55 -07:00
2026-06-22 16:42:20 -07:00
2026-06-22 16:42:20 -07:00
2026-06-22 16:42:20 -07:00
2026-06-22 16:42:20 -07:00
2026-06-22 16:42:20 -07:00
2026-06-14 01:48:26 -07:00
2026-06-29 22:38:29 -07:00
2026-06-26 14:28:16 -07:00
2026-07-05 21:51:32 -07:00
2026-06-19 17:14:55 -07:00
2026-06-10 21:14:53 -07:00
2026-05-16 11:50:26 -07:00
2026-06-25 18:36:11 -07:00
2026-06-18 00:11:32 -07:00
2026-06-18 00:11:32 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 21:37:49 -07:00
2026-05-25 15:07:40 -07:00
2026-06-08 01:00:29 -07:00
2026-06-30 15:29:12 -07:00
2026-07-05 21:51:32 -07:00
2026-06-20 02:03:24 -07:00
2026-06-10 21:14:53 -07:00
2026-06-19 19:43:42 -07:00
2026-06-17 10:49:41 -07:00
2026-06-29 22:38:29 -07:00
2026-06-10 21:14:53 -07:00
2026-06-12 16:31:24 -07:00
2026-06-09 13:52:58 -07:00
2026-06-19 17:14:55 -07:00
2026-06-24 20:16:14 -07:00
2026-06-24 20:16:14 -07:00
2026-06-20 01:27:41 -07:00
2026-06-20 01:27:41 -07:00
2026-06-27 09:30:29 -07:00
2026-06-27 02:37:23 -07:00
2026-06-21 23:09:01 -07:00
2026-06-23 21:24:13 -07:00
2026-06-24 20:16:14 -07:00
2026-06-20 02:03:24 -07:00
2026-06-20 02:03:24 -07:00
2026-06-20 02:03:24 -07:00
2026-06-22 16:42:20 -07:00
2026-07-04 00:25:21 -07:00
2026-06-22 16:42:20 -07:00
2026-06-29 22:38:29 -07:00
2026-06-23 00:23:34 -07:00
2026-07-05 19:46:49 -07:00
2026-06-19 17:14:55 -07:00
2026-06-23 00:23:34 -07:00
2026-06-23 10:15:06 -07:00
2026-06-23 00:23:34 -07:00
2026-07-05 21:51:32 -07:00
2026-07-05 21:51:32 -07:00
2026-06-12 16:31:24 -07:00
2026-06-22 16:42:20 -07:00
2026-06-19 17:14:55 -07:00
2026-05-15 23:52:37 -07:00
2026-06-07 17:49:01 -07:00
2026-06-29 22:38:29 -07:00
2026-05-17 15:43:53 -04:00
2026-06-18 00:11:32 -07:00
2026-07-05 19:46:49 -07:00
2026-04-19 15:50:19 -07:00
2026-05-21 01:33:53 -07:00
2026-06-18 00:11:32 -07:00
2026-06-29 22:38:29 -07:00
2026-06-18 00:11:32 -07:00
2026-07-05 21:51:32 -07:00
2026-06-18 00:11:32 -07:00
2026-06-18 00:11:32 -07:00
2026-07-05 19:46:49 -07:00