github oxc-project/oxc apps_v1.71.0
oxlint v1.71.0 & oxfmt v0.56.0

5 hours ago

Table of Contents

  • Oxlint v1.71.0
  • Oxfmt v0.56.0

Oxlint v1.71.0

πŸš€ Features

  • ff65285 linter: no-restricted-globals add missing upstream options (#23663) (Sysix)
  • 7b8bd89 linter/typescript: Implement suggestion for no-unnecessary-type-constraint rule (#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-requires rule (#23539) (fujitani sora)
  • 59d8893 linter: unicorn/numeric-separators-style support 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-type rule (#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-calls rule (#23461) (arieleli01212)

πŸ› Bug Fixes

  • b1948a1 linter/radix: Avoid panic on parseInt with 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 parseInt with 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-style preserve 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 BigInt wrapper when fixing BigInt(new Date()) (#23523) (Yunfei He)
  • 16bb890 linter/unicorn/prefer-array-flat: Skip non-array flatMap receivers (#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-valid config with upstream (#23446) (camc314)
  • f27a6d1 linter: False positives with non *.setTimeout call in no-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 Vec before 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() with order: desc for idempotency (#23543) (leaysgur)
  • 8fa7394 formatter_json: Handle wrapped error span (#23472) (leaysgur)
  • 37a34a1 oxfmt/lsp: Avoid newlines line ending changes (#23463) (Sysix)

⚑ Performance

  • 80f1697 formatter: Avoid arena copy for already-lowercase bigint literals (#23534) (Yunfei He)
  • 1a40b71 formatter: Avoid arena copy for borrowed numeric-literal text (#23512) (Yunfei He)
  • 12e4451 formatter: Avoid arena copy for borrowed string-literal text (#23465) (Yunfei He)

Don't miss a new oxc release

NewReleases is sending notifications on new releases.