Releases: oxc-project/oxc
Releases · oxc-project/oxc
oxlint v1.57.0 & oxfmt v0.42.0
Table of Contents
Oxlint v1.57.0
🚀 Features
- 2244984 linter: Implement
vitest/prefer-strict-boolean-matchersrule (#20603) (Mikhail Baev) - c5f0ed3 linter/array-callback-return: Use CFG for analysis (#20498) (camc314)
- f9a63ca linter: Implement
unicorn/custom-error-definitionrule (#20520) (Mikhail Baev)
🐛 Bug Fixes
- 5e893d7 jsdoc: Parse tags after interval notation in descriptions (#20046) (camc314)
- 532c921 linter/plugins: Include
locwhen callJSON.stringifyonTokens andComments (#20512) (overlookmotel) - c3d9e91 linter/plugins: Fix memory leak in tokens and comments (#20477) (overlookmotel)
- 525c398 linter: Detect no-cycle with auto-discovered tsconfig paths (#20566) (camc314)
- 9519380 linter/no-noninteractive-tabindex: Handle numeric tabIndex values on non-interactive elements (#20538) (camc314)
- 04c84bb linter: Fix cloning on Windows by reducing the size of a problematic snapshot filename. (#20511) (connorshea)
- 65a7c3c linter/hex-escape: False positive for
String.raw(#20497) (camc314) - d3cdc82 linter/escape-case: False positive for
String.raw(#20496) (camc314) - 50d59e9 linter/explicit-function-return-type: False negative with HOF detection (#20495) (camc314)
- d78c55d linter/no-unused-vars: Handle loop-carried self-reassignments (#20457) (camc314)
- 6a307d1 linter/explicit-module-boundary-types: Fix false positives for satisfies-wrapped members (#20439) (camc314)
- 0c57312 tsgolint: Use primary span for the disable directive (#20436) (camc314)
- 4791b2e linter: Add summary output to GitHub formatter (#20404) (Hideyasu-Ozawa)
⚡ Performance
- 30891bd linter/plugins: Share empty
Uint32Arrayacross multiple places (#20509) (overlookmotel) - 336f7f7 linter/plugins: Faster conversion of span to
Location(#20507) (overlookmotel) - a187333 linter/plugins: Reuse descriptor objects for
Object.definePropertycalls (#20505) (overlookmotel) - 5984a66 linter/plugins: Recycle
Locationobjects (#20491) (overlookmotel) - 8729614 linter/plugins: Reduce operations in binary search (#20490) (overlookmotel)
- 9cfc312 linter/plugins: Reduce allocations for tokens and comments with accessed
loc(#20480) (overlookmotel) - 9c7a267 linter/plugins: Reduce allocations for regex tokens (#20479) (overlookmotel)
- 4ee80ac linter/plugins: Remove bounds checks on regex tokens (#20478) (overlookmotel)
- 4a22f60 linter/plugins: Remove regex from
getCommentsBefore+getCommentsAfter(#20475) (overlookmotel) - 9a622c7 linter/plugins: Lazy deserialize tokens and comments (#20474) (overlookmotel)
- c6ea0a0 ast: Place
NodeIdfield afterSpanin structs (#20584) (overlookmotel) - d176ecc napi/parser, oxlint/plugins: Shorten deserializer for
WithClause(#20575) (overlookmotel) - 57b2e82 linter/no-required-prop-with-default: Restructure so lintgen works (#20537) (camc314)
- 9ddfb42 linter/no-const-assign: Use
BindingPattern::get_symbol_ids(#20533) (camc314)
📚 Documentation
- f064f80 linter/plugins: Correct comment about offset to line-column conversion (#20506) (overlookmotel)
- 4047e71 linter/plugins: Improve docs for conformance tests (#20528) (overlookmotel)
- 6022ddb linter: Add note about options to
react/jsx_key(#20484) (connorshea) - 5c104ff linter/curly: Fix incorrect examples code (#20421) (KUAI)
Oxfmt v0.42.0
🚀 Features
- 416865a formatter,oxfmt: Add doc comments for
JsdocConfig(#20644) (leaysgur) - 4fec907 formatter: Add JSDoc comment formatting support (#19828) (Dunqing)
- c21c5a7 oxfmt: Support html-in-js substitution (#20193) (leaysgur)
- c5aeae4 formatter,oxfmt: Support
/* LANG */comment for gql|html-in-js (#20224) (leaysgur)
🐛 Bug Fixes
- 399e629 formatter: Align more trailing comment cases with prettier (#20636) (#20643) (Andreas Lubbe)
- 909fb4d formatter: Remove unnecessary parens around TSConstructorType in arrow function return type (#20573) (bab)
- 828b56a oxfmt: Re-export all nested types (#20636) (leaysgur)
- c1b461b oxfmt/lsp: Revert #19977, prefer file extension over languageId for format strategy (#20623) (Sysix)
- d35b25f formatter,oxfmt: Remove redundant space after soft_line_break_or_space (#20562) (leaysgur)
- f8c452a formatter,oxfmt: Handle css-in-js comment inside template (#20452) (leaysgur)
- 7c233f4 formatter,oxfmt: Handle nested
BinaryExpressionfor tailwind trailing spaces (#20450) (leaysgur) - 71628e6 formatter,oxfmt: Sort imports should not flush Empty line (#20443) (leaysgur)
oxc crates_v0.122.0
🚀 Features
- 4fec907 formatter: Add JSDoc comment formatting support (#19828) (Dunqing)
- 07128b0 semantic: Report error for
await usingin class static block (#20535) (camc314) - 728fc8d semantic: Improve diagnostic for
awaitin static block (#20534) (camc314) - 76cd0b1 ast: Add method to retrieve
SymbolIds from BindingPattern (#20532) (camc314)
🐛 Bug Fixes
- 3d76121 transformer: Incorrect output with multiple JSX spread children in automatic mode (#20647) (Dunqing)
- 5e893d7 jsdoc: Parse tags after interval notation in descriptions (#20046) (camc314)
⚡ Performance
- 9a622c7 linter/plugins: Lazy deserialize tokens and comments (#20474) (overlookmotel)
- 89946e1 ast: Mark
AstKind::addressas#[inline](#20586) (overlookmotel) - 3420abb ast: Mark
AstKind::spanas#[inline](#20585) (overlookmotel) - c6ea0a0 ast: Place
NodeIdfield afterSpanin structs (#20584) (overlookmotel) - d176ecc napi/parser, oxlint/plugins: Shorten deserializer for
WithClause(#20575) (overlookmotel)
oxc crates_v0.121.0
🚀 Features
🐛 Bug Fixes
- 3bbd0cd transformer: Emit
Objectinstead ofvoid 0for untyped getter/setterdesign:typemetadata (#20488) (Dunqing) - 4ae3f3f ecmascript: Apply coercion-is-pure assumption to constructor side-effect detection (#20420) (Dunqing)
- 11f9695 transformer: Legacy decorator on computed property key leaves variable unassigned (#20430) (bab)
- efeba28 ecmascript: Add argument validation for NewExpression side-effect detection (#20395) (Dunqing)
oxc crates_v0.120.0
🐛 Bug Fixes
- edb8677 ecmascript: Treat collection constructor with variable arg as side-effectful (#20383) (Dunqing)
- 1f65c3f transformer: Emit design:paramtypes when class has static anonymous class expression (#20382) (bab)
- fa70d5c transformer: Use implementation signature for design:paramtypes when constructor is overloaded (#20394) (bab)
- ed5a7fb parser: Report syntax error for
new super()(#20384) (Boshen) - e62524d minifier: Treat object spread of getters as having side effects (#20380) (Boshen)
- f8fbd6e linter/plugins: Remove
hashbangproperty from AST (#20365) (overlookmotel)
⚡ Performance
oxlint v1.56.0 & oxfmt v0.41.0
Table of Contents
Oxlint v1.56.0
🚀 Features
- c95951f linter/plugins: Implement
sourceCode.markVariableAsUsed(#20357) (overlookmotel) - 7a2a7d0 linter: Implement
n/handle-callback-errrule (#19616) (Mikhail Baev)
🐛 Bug Fixes
- 89ce30b oxlint,oxfmt: Redirect JS stdout to stderr for LSP (#20321) (leaysgur)
- f8fbd6e linter/plugins: Remove
hashbangproperty from AST (#20365) (overlookmotel) - 6eb5b01 linter/prefer-await-to-then: Ignore Promise static methods (#20347) (camc314)
- a4b61f7 linter: Remove
defineConfigcheck (#20308) (camc314) - 3ad7f53 linter/explicit-module-boundary-types: False positive with satisfies expr (#20309) (camc314)
- f547401 linter/no-unused-private-class-members: Treat switch discriminants as read (#20307) (camc314)
- 1c07b3b diagnostics: Handle
WouldBlockin stdout writes to prevent panic (#20295) (Boshen)
⚡ Performance
- e4f7248 linter: Remove unnecessary clone of owned String in drain loop (#20388) (Boshen)
- 4a67f1d linter: Eliminate Vec allocation in disable directive matching (#20387) (Boshen)
- 618a598 linter/plugins: Add fast path for files with no comments (#20366) (overlookmotel)
- b0125c5 linter/plugins: Deserialize comments without AST (#20364) (overlookmotel)
- 9cd612f linter/plugins: Recycle comment objects (#20362) (overlookmotel)
- bf442f8 linter/plugins: Cheaper
Tokencreation (#20360) (overlookmotel) - 5474d0a semantic: V8-style walk-up reference resolution (#20292) (Boshen)
- 7946eba linter/plugins: Avoid arguments spread and temp array when merging (#20318) (overlookmotel)
- fc7cf8a linter/plugins: Pre-define less CFG merger functions (#20317) (overlookmotel)
- 3b9eb28 linter/plugins: Streamline getting/creating visit fn mergers (#20319) (overlookmotel)
- f04e850 linter/plugins: Inline binary search functions into call sites (#20312) (overlookmotel)
- fe24afe linter/plugins: Apply replace globals TSDown plugin to JS files (#20305) (overlookmotel)
- 77cdacc linter/plugins: Use array buffer views for tokens (#20301) (overlookmotel)
- 910c941 linter/plugins: Reorder branches in
getTokenByRangeStart(#20296) (overlookmotel) - af7674c linter/tokens: Avoid extra token value allocation (#20013) (camc314)
📚 Documentation
- 24490b5 linter: Improve formatting for 80ish rules' docs. (#20411) (connorshea)
- 3383523 linter: Improve
--tsconfigflag docs (#20342) (camc314)
Oxfmt v0.41.0
🚀 Features
- d22c443 oxfmt: Export
OxfmtConfigtype (#20275) (leaysgur) - a11ecff oxfmt/lsp: Respect
angularlanguage id as.component.htmlfile (#20242) (Sysix)
🐛 Bug Fixes
- 89ce30b oxlint,oxfmt: Redirect JS stdout to stderr for LSP (#20321) (leaysgur)
- ce65099 formatter: Preserve parentheses around as expression before private field access (#20419) (bab)
- f908742 oxfmt: Revert #20326 partially (#20413) (leaysgur)
- 4ef93ea formatter: Honor trailing ignore comments after list separators (#19925) (Andreas Lubbe)
- 68fb0d0 oxfmt: Skip vite.config.ts which fails to import (#20326) (leaysgur)
- 88ee826 oxfmt: Handle literalline for script-in-vue (#20130) (leaysgur)
- 1c07b3b diagnostics: Handle
WouldBlockin stdout writes to prevent panic (#20295) (Boshen)
oxc crates_v0.119.0
🚀 Features
- e7163b6 ecmascript: Add known-globals to side-effect-free property reads (#20212) (Dunqing)
- 139ab68 ecmascript: Add
property_write_side_effectstoMayHaveSideEffectsContext(#20217) (Dunqing)
🐛 Bug Fixes
- 78c264a parser: Fix conditional expressions with arrow-function alternates in TS (#20356) (camc314)
- 5c97b14 minifier: Recognize object spread of object literals as side-effect-free (#20299) (Boshen)
- 1ff5c1d transformer/typescript: Rewrite extensions in dynamic
import()expressions (#20121) (Sverre Johansen) - 1c07b3b diagnostics: Handle
WouldBlockin stdout writes to prevent panic (#20295) (Boshen) - ade14d4 ecmascript: Enhance side-effect detection for classes, TypedArrays, computed members, and spread (#20213) (Dunqing)
⚡ Performance
📚 Documentation
- e4aa5b5 parser/napi, linter/plugins: Add JSDoc comments to raw transfer constants (#20286) (overlookmotel)
oxc crates_v0.118.0
release(crates): oxc v0.118.0 (#20266) Co-authored-by: leaysgur <6259812+leaysgur@users.noreply.github.com>
oxlint v1.55.0 & oxfmt v0.40.0
Table of Contents
Oxlint v1.55.0
🐛 Bug Fixes
- 6b46ce8 oxlint: Ignore inherited root-only options in nested configs (#20291) (camc314)
- bc20217 oxlint,oxfmt: Omit useless
| nullforOption<T>field from schema (#20273) (leaysgur) - f26e6ab linter: Make
generate-plugin-eslintscript work on windows (#20246) (camc314)
📚 Documentation
- e4aa5b5 parser/napi, linter/plugins: Add JSDoc comments to raw transfer constants (#20286) (overlookmotel)
- f339f10 linter/plugins: Promote JS plugins to alpha status (#20281) (overlookmotel)
Oxfmt v0.40.0
🐛 Bug Fixes
oxlint v1.54.0 & oxfmt v0.39.0
Table of Contents
Oxlint v1.54.0
🐛 Bug Fixes
- 4ea67de oxlint,oxfmt: Skip
vite.config.tsexportsdefineConfig(fn)(#20260) (leaysgur) - cc89dbf oxlint: Skip
vite.config.tsw/o.lintfield in auto-discovery (#20255) (leaysgur) - 89b7ca9 linter/no-duplicate-imports: Only check aggregated exports (#20178) (kennytm)
- 691f556 linter/explicit-module-boundary-types: Ignore constructor callbacks (#20221) (camc314)
⚡ Performance
📚 Documentation
- 0c7da4f linter: Fix extra closing brace in example config. (#20253) (connorshea)
- 13606c3 linter/plugins: Update conformance README (#20234) (overlookmotel)
Oxfmt v0.39.0
🐛 Bug Fixes
oxlint v1.53.0 & oxfmt v0.38.0
Table of Contents
Oxlint v1.53.0
🚀 Features
- 04a5ce0 oxlint: Support
vite.config.ts.lintfield (#20214) (leaysgur) - 1735215 linter: Implement
react/no-clone-elementrule. (#20129) (connorshea) - 68e6f6f linter: Implement
react/no-react-childrenrule. (#20104) (connorshea) - fe3b32e linter/plugins: Add
oxlint-plugin-eslintpackage (#20009) (overlookmotel)
🐛 Bug Fixes
- 05f6a09 linter/no-inline-comments: Deserialize rule options with serde (#20207) (camc314)
- c7eb09d linter/default-case: Deserialize rule options with serde (#20206) (camc314)
- f85e16c linter/plugins: Fix types for visitor compilation (#20203) (overlookmotel)
- 44e24e0 linter/exhaustive-deps: Ignore type-only typeof deps (#20201) (camc314)
- 0b04998 linter/no-fallthrough: Deserialize rule options with serde (#20192) (camc314)
- a1031cb linter/new-cap: Deserialize rule options with serde (#20161) (camc314)
- ad27fd6 linter: Add help messages to import plugin diagnostics (#20158) (John Costa)
- 1340307 linter/plugins: Ensure
afterhooks always run (#20167) (overlookmotel) - c4812ec linter/plugins: Reset visitor compilation state if error during compilation (#20166) (overlookmotel)
- 887eecc linter/plugins: Add license notice to
oxlint-plugin-eslintpackage (#20164) (overlookmotel) - e1713a4 linter/plugins: Include common chunks in
oxlint-plugin-eslintpackage (#20163) (overlookmotel) - a9acb2b linter: Check
globalsentry forno-undef, only check es2026 globals forno-extend-nativeandno-constant-binary-expression(#20089) (Sysix) - 5559f0d linter/no-unused-vars:
reportUsedIgnorePatternshould not report used rest siblings (#20108) (Don Isaac) - de7c0e2 linter/plugins: Correct error message for
markVariableAsUsed(#20152) (overlookmotel)
⚡ Performance
- 3a86427 linter/plugins: Pre-populate cache of
EnterExitobjects at startup (#20194) (overlookmotel) - d243391 linter/plugins: Replace arrays with
Uint8Arrays (#20190) (overlookmotel) - 8742f8b linter/plugins: Pre-populate cache of
VisitPropobjects (#20189) (overlookmotel) - 3061acb linter/plugins: Pre-populate cache of
EnterExitobjects (#20187) (overlookmotel) - c73912b linter/plugins: Free visit functions earlier (#20186) (overlookmotel)
- d9f8ff4 linter/plugins: Faster reset of visitor state (#20185) (overlookmotel)
- 42aff15 oxlint/lsp: Avoid computing diagnostics for non invoked code actions requests (#20080) (Sysix)
📚 Documentation
- a080650 linter/plugins: Fix documentation of visitor compilation (#20202) (overlookmotel)
- 542a04a linter: Add a link to the cyclomatic complexity Wikipedia article in
eslint/complexity(#20174) (connorshea)
Oxfmt v0.38.0
🚀 Features
- 95943aa oxfmt: Support
vite.config.*.fmtfield (#20197) (leaysgur) - 172fc07 oxfmt: .js/.ts config file support (#20135) (leaysgur)
🐛 Bug Fixes
Notes
No binaries are included in this release due to problems with the release workflow.
Binaries will be included in next scheduled release on Monday 16th March.