Table of Contents
- Oxlint v1.71.0
- Oxfmt v0.56.0
Oxlint v1.71.0
π Features
- ff65285 linter:
no-restricted-globalsadd missing upstream options (#23663) (Sysix) - 7b8bd89 linter/typescript: Implement suggestion for
no-unnecessary-type-constraintrule (#23646) (Mikhail Baev) - 0dc2405 linter: Add schema for
eslint/no-restricted-properties(#23619) (Sysix) - b638d0e linter: Add schema for
node/callback-return(#23615) (Sysix) - eb8bedc linter: Add schema for
import/extensions(#23557) (WaterWhisperer) - 46f3625 linter: Implement node/no-sync rule (#23589) (fujitani sora)
- b01739a linter: Add schema for
unicorn/numeric-separators-style(#23554) (Mikhail Baev) - 68afd2a linter/node: Implement
no-mixed-requiresrule (#23539) (fujitani sora) - 59d8893 linter:
unicorn/numeric-separators-stylesupport missing options (#23524) (Sysix) - a421215 linter: Add schema for
eslint/prefer-destructuring(#23410) (WaterWhisperer) - 84438be linter/jsdoc: Added missing options to
require-param-description(#23416) (kapobajza) - c145b72 linter/jsdoc/require-param-type: Implement fixer (#23513) (camc314)
- 51910df linter/jsdoc: Add missing options to
require-param-typerule (#23418) (kapobajza) - e90925f linter/unicorn: Implement prefer-number-coercion rule (#23497) (ShekhuβΊοΈ)
- dd1c866 linter/vue: Implement no-async-in-computed-properties rule (#23493) (bab)
- b02444e linter: Add schema for
react/jsx-no-script-url(#23475) (WaterWhisperer) - 53509a8 minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
- a8dce46 linter/unicorn: Implement
max-nested-callsrule (#23461) (arieleli01212)
π Bug Fixes
- b1948a1 linter/radix: Avoid panic on
parseIntwith a spread radix argument (#23623) (Jerry Zhao) - f28ccfd linter/prefer-query-selector: Use a compound selector for multiple classes (#23628) (Jerry Zhao)
- 13f2970 linter/prefer-numeric-literals: Avoid panic on
parseIntwith a spread radix argument (#23624) (Jerry Zhao) - 57612b3 linter: Report invalid capitalized-comments ignore patterns (#23608) (camc314)
- 800ee2a linter/consistent-vitest-vi: Preserve import aliases when rewriting the import (#23568) (Yunfei He)
- f78b5e1 linter/consistent-indexed-object-style: Don't leak a stray comma into the value type (#23566) (Yunfei He)
- 6b104e8 linter/radix: Detect a trailing comma only after the argument (#23569) (Yunfei He)
- 2de20cb linter/unicorn/prefer-at: Correct two-argument
slice().pop()index (#23565) (Yunfei He) - de778ec linter:
unicorn/numeric-separators-stylepreserve dot for floats without decial part (#23553) (Sysix) - 651027c linter/curly: Remove only the block's own braces (#23580) (Yunfei He)
- 687e835 linter/array-type: Parenthesize a conditional-type element (#23579) (Yunfei He)
- 9c80dff linter/unicorn/no-unnecessary-await: Don't paste operators into invalid syntax (#23556) (Yunfei He)
- 46e1463 linter/no-compare-neg-zero: Delete the
-of a parenthesized-0(#23578) (Yunfei He) - d172a97 linter/unicorn/prefer-math-trunk: Skip fixer for LHS with side effects (#23548) (camc314)
- 1c3a9bd linter/unicorn/prefer-negative-index: Don't report
Array#with(#23518) (Yunfei He) - c17db5d linter/unicorn/prefer-spread: Don't report
.slice()on non-array receivers (#23520) (Yunfei He) - 9cd0c2f linter/unicorn/prefer-date-now: Keep
BigIntwrapper when fixingBigInt(new Date())(#23523) (Yunfei He) - 16bb890 linter/unicorn/prefer-array-flat: Skip non-array
flatMapreceivers (#23527) (Yunfei He) - 3e6f90f linter/unicorn/no-zero-fractions: Insert a space after any preceding keyword (#23529) (Yunfei He)
- 79a7d69 linter/eslint/no-useless-assignment: Handle exceptional control-flow paths (#23544) (camc314)
- e8e2741 linter/unicorn/prefer-math-min-max: Preserve operand source text in the fix (#23533) (Yunfei He)
- f592154 linter/react/display-name: Ignore lowercase jsx helpers (#23510) (camc314)
- df7612f linter/jsx-a11y/no-noninteractive-element-to-interactive-role: Allow custom roles config (#23507) (camc314)
- 924b931 linter/unicorn/prefer-at: Handle checking all indexes correctly (#23504) (camc314)
- ca9686b linter/unicorn/prefer-at: Report zero indexes (#23503) (camc314)
- e96a4e3 linter/unicorn/explicit-length-check: Ignore optional chains (#23487) (camc314)
- a303c23 linter/jsx-a11y: Align
anchor-is-validconfig with upstream (#23446) (camc314) - f27a6d1 linter: False positives with non
*.setTimeoutcall inno-confusing-set-timeout(#23444) (camc314)
β‘ Performance
- 8e0dd65 linter: Emit RuleEnum dispatch match once instead of per timing branch (#23499) (Boshen)
- d5c7d99 linter/expect-expect: Avoid recompiling matches on every traversal (#23593) (camc314)
- f191520 linter/no-useless-spread: Avoid collecting
Vecbefore iterating (#23546) (camc314) - 79340d1 linter: Stream React lifecycle ancestors (#23545) (camc314)
- 1923169 linter/eslint/max-classes: Gate rule by rule config threshold (#23509) (camc314)
- 3f60de3 linter: Use bucketed dispatch for all files (#23452) (camc314)
- 3699971 linter/typescript/no-unnecessary-parameter-property-assignment: Avoid temporary vec allocations (#23492) (camc314)
- 4ef0ceb linter/eslint/no-useless-switch-case: Avoid temporary vec allocations (#23489) (camc314)
- 2e09dd3 linter: Avoid JSX fragment child collections (#23486) (camc314)
- f30a64c linter/oxc/branches-sharing-code: Borrow shared branch suggestion text (#23484) (camc314)
- 097a317 linter/eslint/no-control-regex: Retain control regex candidates in place (#23482) (camc314)
- b3a093d linter: Reuse rule dispatch buckets (#23450) (camc314)
- 9f1a985 oxlint: Start Tokio only for LSP (#23447) (camc314)
π Documentation
- 9e219de linter/plugins: Update usage instruction (#23495) (Tony)
- b50bf4d linter: Remove manually written options doc for
eslint/arrow-body-style(#23490) (Mikhail Baev)
Oxfmt v0.56.0
π Bug Fixes
- f21ed2c formatter_json: Normalize CRLF for suppressed text (#23702) (leaysgur)
- 7cd1737 formatter: Normalize CRLF for suppressed text (#23701) (leaysgur)
- a36e444 formatter: Member chain panic when tail is merged with comment in dev build (#23698) (leaysgur)
- 600d306 formatter: Preserve parens with default export and type cast (#23697) (leaysgur)
- 61290f2 formatter: Single-member intersection/union type with comment formatting (#21915) (Leonabcd123)
- 5a1b0b4 formatter: Parenthesize a type assertion used as the base of
**(#23633) (Jerry Zhao) - 91827e2 formatter: Use
Ordering::reverse()withorder: descfor idempotency (#23543) (leaysgur) - 8fa7394 formatter_json: Handle wrapped error span (#23472) (leaysgur)
- 37a34a1 oxfmt/lsp: Avoid newlines line ending changes (#23463) (Sysix)