Visitar URL original
Releases · oxc-project/oxc · GitHub
Skip to content

Releases

oxlint v1.93.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:47
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 6195265 linter/promise/prefer-catch: Implement suggestion (#28919) (Mikhail Baev)

🐛 Bug Fixes

  • 866664e linter/unicorn/no-useless-undefined: Skip var initializers (#29007) (camc314)
  • 30603cb linter/react/exhaustive-deps: Preserve comments in dependency removals (#29047) (camc314)
  • 4630fe4 linter/unicorn/no-useless-undefined: Narrow return type exemptions (#29000) (camc314)
  • b63870a linter/vitest/expect-expect: Recognize benchmark fixtures (#29044) (camc314)
  • 9c62d2a linter/eslint/no-unreachable-loop: Ignore enclosing finalizers for continues (#29004) (camc314)
  • 6303df1 jsdoc: Preserve param tags after unmatched description delimiters (#28923) (Vishal Punjabi)
  • fe66fa7 linter/eslint/no-lone-blocks: Report redundant blocks in function bodies (#29043) (camc314)
  • e1694bd linter/unicorn/no-useless-undefined: Preserve shadowed bindings (#29046) (camc314)
  • 791b5f5 linter/unicorn/prefer-regexp-test: Restrict automatic argument swaps (#29045) (camc314)
  • e7654f6 linter/react/display-name: Ignore unrelated memo and forwardRef calls (#29005) (camc314)
  • 2487360 linter/unicorn/no-useless-undefined: Report guarded indexed access (#29014) (camc314)
  • a791a5b cfg: Resolve continues through stacked loop labels (#29016) (camc314)
  • 287ba19 linter/eslint/id-length: Ignore TypeScript qualified references (#29037) (camc314)
  • b71234f cfg: Skip labeled contexts for unlabeled jumps (#29001) (camc314)
  • bb21a3c linter/import/no-anonymous-default-export: Report parenthesized exports (#29002) (camc314)
  • f38f738 linter/eslint/prefer-destructuring: Skip fixes that remove comments (#29003) (camc314)
  • bf11006 linter/react/exhaustive-deps: Suggest dependency removals (#28925) (camc314)
  • 6bbb92a linter: Remove unused oxlint-disable directives with --fix (#27698) (Ryan Tsao)
  • 3b35cb6 linter/disable-directives: Preserve separators and disable spans (#28921) (camc314)
  • 1253445 linter/eslint/no-restricted-imports: Report re-exported imports once (#28920) (Ramy Akin Saidi)

⚡ Performance

  • da620e6 linter: Start tsgolint before the regular lint pass (#28824) (Max Schwenk)

oxfmt v0.78.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:47
Immutable release. Only release title and notes can be modified.

🐛 Bug Fixes

  • ab78621 formatter_css/less: Print ~ escape consistently (#29089) (Yuji Sugiura)
  • 91721d2 formatter_css/less: Print Less % selectors (#29088) (Yuji Sugiura)
  • 449e91f oxfmt: Format ts-in-astro as TSX (#29080) (leaysgur)
  • 8d8845e formatter/jsdoc: Strip * prefixes from multiline default value (#28910) (leaysgur)
  • cdb1501 formatter/jsdoc: Handle every line terminator in multi-line JSDoc types (#28909) (leaysgur)
  • fd51bff jsdoc: Handle every line terminators as newline (#28902) (leaysgur)
  • 2f80765 formatter_toml: Format whitespace-only document to empty (#28899) (leaysgur)
  • 5e1e02c formatter_graphql: Allow empty document (#28898) (leaysgur)
  • 06e72c0 formatter/tailwind: Normalize CR in Tailwind template with preserveWhitespace (#28896) (leaysgur)

⚡ Performance

  • 934ca98 formatter: Use Arc for tailwind options across embedding (#29079) (leaysgur)
  • dde9c5c formatter_htmlish: Skip </script escape if possible (#29078) (leaysgur)
  • dc4d918 formatter: Format embedded expr of one name without parsing (#29077) (leaysgur)

📚 Documentation

  • eb2eb2d formatter_htmlish: Cover block elements in DIVERGENCES.md#interpolation-element-as-text (#28901) (leaysgur)
  • 0f4ec80 formatter/tailwind: Note Tailwind sorting tears escaped whitespace apart (#28900) (leaysgur)

oxc crates_v0.158.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:13
Immutable release. Only release title and notes can be modified.

🐛 Bug Fixes

  • de6ac92 isolated-declarations: Preserve object accessor mutability (#29039) (camc314)
  • 3729ce1 transformer/typescript: Merge exported enums across namespace blocks (#28999) (camc314)
  • 7243594 minifier: Preserve throwing ArrayBuffer and URI calls (#29012) (camc314)
  • 67ac6be isolated-declarations: Evaluate enum template literal initializers (#28997) (camc314)
  • f05b30e isolated-declarations: Infer auto-accessor initializer types (#29038) (camc314)
  • 030d410 isolated-declarations: Preserve computed ambient enum members (#29040) (camc314)
  • 6303df1 jsdoc: Preserve param tags after unmatched description delimiters (#28923) (Vishal Punjabi)
  • 99e67d3 transformer: Preserve static private brands with shadowed class names (#28894) (Dunqing)
  • 595f3c2 minifier: Preserve left-hand side effects in instanceof checks (#29011) (camc314)
  • a791a5b cfg: Resolve continues through stacked loop labels (#29016) (camc314)
  • 9e3b3d1 ecmascript: Reject signs after nondecimal prefixes (#29034) (camc314)
  • 43c5273 ecmascript: Round nondecimal strings to numbers once (#29026) (camc314)
  • b71234f cfg: Skip labeled contexts for unlabeled jumps (#29001) (camc314)
  • fd51bff jsdoc: Handle every line terminators as newline (#28902) (leaysgur)
  • c00dc61 codegen: Keep one source map mapping per generated position (#28844) (YT)
  • 52f3e3d jsdoc: Do not treat @word containing / as tag (#28834) (leaysgur)
  • 0b48483 minifier: Preserve UTF-16 boundaries in empty-search replaceAll folding (#28807) (huuya)
  • 1e57a4e codegen: Print infinite numeric literals as 1e400 instead of Infinity (#28812) (Dominic Elm)
  • 28a44b7 transformer/class-properties: Preserve private accessor assignment receivers (#28790) (Dunqing)
  • ea76490 transformer/class-properties: Preserve private method values in assignments (#28788) (Dunqing)
  • 8432de6 transformer/class-properties: Apply a compound assignment to a static private field once (#28606) (YT)
  • 3dbf140 parser: Treat escaped contextual keywords as names, not modifiers (#28748) (Dominic Elm)
  • e3b1bb4 transformer/class-properties: Keep the value of a private accessor assignment (#28716) (YT)
  • ae7474e minifier: Keep array concat chain reads before later side effects (#28261) (Dunqing)
  • ec327aa semantic: Keep block type bindings separate from hoisted vars (#28601) (YT)
  • 3fd78d7 codegen: Preserve names in duplicate source mappings (#26051) (camc314)

⚡ Performance

  • 7761a39 codegen: Remove redundant sourcemap buffer shrinks (#28893) (Dunqing)
  • bee25de regular_expression: Check only the latest group per name in duplicate prescan (#29083) (Yuji Sugiura)
  • 4da1752 codegen: Use SWAR scanning and shared column tables (#28939) (Dunqing)
  • cc84126 mangler: Inline candidate checks during slot assignment (#28881) (Dunqing)
  • 6611cf9 parser: Specialize quoted string value access (#28965) (Boshen)
  • 5038ba6 parser: Avoid repeated await-using lookahead (#28960) (Boshen)
  • ecc807b parser: Skip discarded arrow diagnostics (#28940) (Boshen)
  • c880368 parser: Fast-path absent TypeScript type lists (#28959) (Boshen)
  • dee6cf4 parser: Skip repeated optional call lookahead (#28876) (Boshen)
  • a524e17 parser: Reuse successful parenthesized arrow heads (#28862) (Boshen)
  • 296b12a parser: Accelerate line comment scanning (#28878) (Boshen)
  • c4fc21e parser: Accelerate escaped string scanning (#28907) (Boshen)
  • f7726b6 parser: Accelerate regex literal scanning (#28911) (Boshen)
  • a8aff38 parser: Scan whitespace in runs (#28953) (Boshen)
  • b1c137c parser: Avoid lookahead for TypeScript keyword types (#28954) (Boshen)
  • 6a8a2a7 parser: Fast-path plain identifiers (#28955) (Boshen)
  • 00deb87 parser: Initialize declaration lists with their first item (#28956) (Boshen)
  • 71dd877 parser: Specialize binary operator associativity (#28957) (Boshen)
  • 732a8e4 codegen: Skip repeated word scans for sourcemap tails (#28869) (Dunqing)
  • 6972243 codegen: Accelerate sourcemap line scanning (#28400) (codspeed)
  • 027eb7e parser: Combine async arrow lookahead (#28431) (Boshen)
  • 7b933d5 lexer: Directly dispatch common punctuation (#28792) (Boshen)
  • 45d86c3 lexer: Combine per-token annotation resets (#28492) (Boshen)
  • d497fbf lexer: Match keywords with byte patterns (#28494) (Boshen)

📚 Documentation

  • 167e78a oxc-types: Correct TypeScript spelling in README (#29092) (camc314)
  • 844c28c syntax: Correct crate capabilities and module records (#29075) (camc314)
  • 8d30d9b traverse: Clarify ancestor access during traversal (#29074) (camc314)
  • a74b7cd ecmascript: Clarify test locations (#29072) (camc314)
  • 7acaa4e mangler: Correct naming strategy and pipeline order (#29073) (camc314)
  • ed28291 ast: Clarify which AST nodes use arena allocation (#29070) (camc314)
  • d5832ab oxc: Correct README APIs and feature requirements (#29068) (camc314)
  • 261c4a2 allocator: Clarify arena storage and memory reclamation (#29066) (camc314)
  • 6448a54 napi/parser: Correct parser options and usage guidance (#29065) (camc314)
  • 157fc5a napi/minify: Correct minifier capabilities and caveats (#29064) (camc314)
  • 6989796 parser: Update TS-ESTree import differences (#29061) (camc314)

oxlint v1.92.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 12:28
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 4a52ba2 oxlint: Discover tsrs for type-aware linting (#28751) (camc314)
  • b7d2c75 linter/eslint/no-redeclare: Add ignoreDeclarationMerge option (#28816) (Cam McHenry)

🐛 Bug Fixes

  • fa66fde oxlint,oxfmt: Resolve Vite+ config root from the config file directory (#28801) (MK (fengmk2))
  • 2091564 linter/jsdoc/require-param: Ignore enclosing function JSDoc (#28866) (camc314)
  • c6ec50b linter/react/only-export-components: Classify JSX values as non-components (#28761) (camc314)
  • 3c051ab linter/vitest/prefer-called-exactly-once-with: Preserve neighboring code in autofix (#28864) (camc314)
  • 674b962 linter/eslint/no-misleading-character-class: Use lazy regex for combining marks (#28822) (Sysix)
  • 838d339 linter/vitest/prefer-called-exactly-once-with: Avoid panic on non-ASCII text (#28850) (YT)
  • 8d24c26 linter/jsx-a11y/aria-role: Allow role={undefined} (#28804) (Abhay Godavarthy)
  • a7143bf linter/eslint/no-restricted-imports: Respect allowTypeImports correctly for empty patterns (#28842) (Cam McHenry)
  • 3d3a6f4 react-compiler: Ignore callback-local reassignments (#28820) (camc314)
  • 0cc6515 linter/unicorn/prefer-type-error: Report throws in unbraced if branches (#28819) (camc314)
  • ae43c80 linter/unicorn/prefer-single-call: Remove duplicate fix status (#28763) (Mikhail Baev)
  • a8a621a linter/eslint/no-fallthrough: Ignore unreachable exits from infinite loops (#28755) (camc314)
  • 7a17a80 linter/eslint/prefer-spread: Report calls on non-member expressions (#28753) (camc314)
  • 28442f7 oxlint: Prevent --init from overwriting existing configs (#28754) (camc314)
  • 0ae350d linter/unicorn/no-zero-fractions: Preserve exponent case (#28752) (camc314)
  • b5b3f3f linter/eslint/no-misleading-character-class: Detect more combining characters (#28733) (Sysix)

⚡ Performance

  • 74d50c1 linter: Overlap import graph batches instead of polling on a pool worker (#28323) (Dunqing)

oxfmt v0.77.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 12:28
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • 00d1a67 oxfmt: [BREAKING] Format parser:vue files by oxc_formatter_htmlish (#28848) (leaysgur)

🚀 Features

  • 9a81e58 formatter_htmlish: Format Vue templates (#28847) (leaysgur)
  • 119d82f formatter: Format a template's expressions and handlers as JsRoot (#28846) (leaysgur)

🐛 Bug Fixes

  • fa66fde oxlint,oxfmt: Resolve Vite+ config root from the config file directory (#28801) (MK (fengmk2))
  • 4d4104d formatter_htmlish: Preserve doctype case in embedded (#28797) (leaysgur)
  • ebfd40a formatter: Sort Tailwind calls printed as member chains (#28800) (Yuji Sugiura)
  • e62e5cb formatter: Decide quotes of a Tailwind key printed as one class (#28798) (Yuji Sugiura)
  • 959edc1 formatter: Don't sort templates in nested non-Tailwind calls (#28794) (Yuji Sugiura)
  • 6ffbe32 formatter/jsdoc: Prevent @tag from being moved to the line start (#28835) (leaysgur)
  • 94fbef5 formatter_css: Treat comments in style attr as fill items (#28832) (leaysgur)
  • e4a80f7 formatter_css: Normalize selectors inside :deep, :slotted and :local (#28805) (leaysgur)
  • 255c5cc formatter: Measure Tailwind class argument after collapsing whitespace (#28745) (Lee Jaeha / Adam)
  • e6c4fef formatter: Decide template and object key layouts from collapsed Tailwind classes (#28791) (Yuji Sugiura)
  • 0b44164 formatter: Decide JSX opening element layout from collapsed Tailwind class string (#28744) (Lee Jaeha / Adam)
  • b8ba9ae formatter: Print decorators on rest parameters (#28731) (YT)

⚡ Performance

  • 2766d07 oxfmt: Spawn Prettier workers on demand (#28789) (YT)
  • 07627f7 oxfmt: Use worker_threads for tinypool again (#28787) (Yuji Sugiura)

oxlint v1.91.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:02
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 004647a track_memory_allocs: Add allocation tracking for linter rules (#28470) (Cam McHenry)
  • 419c1b0 linter: Add allow and allowPattern options to react/capitalized-calls (Christian Vuerings)

🐛 Bug Fixes

  • a205cd3 linter/eslint/no-control-regex: Detect raw control characters (#28548) (camc314)
  • 7c65777 linter/unicorn/prefer-global-this: Align typeof and worker API handling (#28549) (camc314)
  • 987d5f1 linter/unicorn/no-invalid-fetch-options: Avoid treating unknown methods as GET (#28547) (camc314)
  • e234dc8 linter/unicorn/no-useless-error-capture-stack-trace: Move to suspicious category (#28545) (camc314)
  • b3dc411 linter/typescript/no-non-null-asserted-nullish-coalescing: Move to suspicious category (#28546) (camc314)
  • cb64638 regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen)
  • c67167e linter: Only run React Compiler rules on files with top-level components or hooks (Boshen)
  • 4c9d5aa linter: Treat Reanimated shared values as ref-like in React Compiler rules (Boshen)
  • 61fe2af linter/react: Ignore impure calls in async components in react/purity (Rahul Kashyap)
  • ed7df7d ast/estree: Include comments in TS Program span (#28326) (camc314)
  • 31cbe37 linter: Make gitlab fingerprints unique per diagnostic (#28307) (camc314)

⚡ Performance

  • 564559d linter/prefer-const: Avoid collecting resolved references (#28732) (Dunqing)
  • bb947dc linter: Skip numeric separator formatting for short integers (#28485) (Cam McHenry)
  • 1043dfa linter: Avoid collecting prefer-const binding identifiers (#28484) (Cam McHenry)
  • 7c93eef linter: Reduce branches-sharing-code scratch allocations (#28483) (Cam McHenry)
  • c0065fd linter: Allocate escape-case replacements only when needed (#28482) (Cam McHenry)
  • d837414 linter: Lazily normalize capitalized-comments text (#28481) (Cam McHenry)
  • 6baaad6 linter: Avoid no-var binding identifier allocations (#28480) (Cam McHenry)
  • 882053b linter: Skip read-only parameters in no-param-reassign (#28479) (Cam McHenry)
  • 92deebf linter: Reduce no-unmodified-loop-condition allocations (#28478) (Cam McHenry)
  • f01d52d linter: Reduce no-duplicate-case allocations (#28477) (Cam McHenry)
  • 6a72d84 linter: Reduce no-dupe-class-members allocations (#28476) (Cam McHenry)
  • 77599ef linter: Reduce no-this-before-super allocations (#28475) (Cam McHenry)
  • 2ea9f58 linter/no-dupe-else-if: Use smallvec to reduce allocs (#28474) (Cam McHenry)
  • 69f0204 linter/react/rules-of-hooks: Reduce allocs (#28473) (Cam McHenry)
  • b138c20 linter: Reduce allocs in no-dupe-keys (#28472) (Cam McHenry)
  • 6f3e982 linter: Avoid operator allocations in no-useless-length-check (#28471) (Cam McHenry)
  • fd68928 react-compiler: Skip passes lint does not need (Yagiz Nizipli)
  • 224f4dd linter/eslint/sort-keys: Reserve initial capacity for string (#27624) (Cam McHenry)
  • e4e01a3 linter/import/no-cycle: Compare visited modules by absolute resolved path (#27517) (Cam McHenry)
  • 741b29b linter/import/no-cycle: Cache sorted module record snapshots (#27516) (Cam McHenry)
  • 20022bb linter/import/no-cycle: Reuse traversal buffers between imports (#27481) (Cam McHenry)
  • fd5edb7 linter/import/no-cycle: Reuse module records in diagnostic stack (#27480) (Cam McHenry)
  • 73e877c linter/import/no-cycle: Don't allocate paths already seen (#27478) (Cam McHenry)
  • 1515d53 linter/react/forward-ref-uses-ref: Narrow forward-ref-uses-ref dispatch (#28367) (Cam McHenry)
  • ee51c01 linter/react/no-string-refs: Narrow AST dispatch (#28366) (Cam McHenry)
  • bbfd692 linter/react/no-children-pop: Narrow AST dispatch (#28365) (Cam McHenry)
  • a86158b linter/unicorn/prefer-set-size: Narrow AST dispatch (#28364) (Cam McHenry)
  • a777fa6 linter/eslint/no-iterator: Narrow member dispatch (#28363) (Cam McHenry)
  • bc5e94d linter/eslint/no-extra-boolean-cast: Narrow AST dispatch (#28362) (Cam McHenry)
  • 93c6e6d linter/unicorn/no-useless-fallback-in-spread: Narrow AST dispatch (#28361) (Cam McHenry)
  • 1a1f66e linter/typescript/no-this-alias: Narrow AST dispatch (#28360) (Cam McHenry)
  • b102a91 linter/typescript/no-wrapper-object-types: Index references (#28359) (Cam McHenry)
  • dbd8a0b linter/eslint/no-unassigned-vars: Batch by declaration (#28358) (Cam McHenry)
  • 1108352 linter/typescript/prefer-as-const: Narrow AST dispatch (#28357) (Cam McHenry)
  • d65531f linter/eslint/no-const-assign: Batch by declaration (#28356) (Cam McHenry)
  • 1ec9991 linter/oxc/number-arg-out-of-range: Narrow AST dispatch (#28355) (Cam McHenry)
  • 7a1243e linter/unicorn/no-invalid-fetch-options: Narrow AST dispatch (#28354) (Cam McHenry)
  • 2ab73cc linter/unicorn/no-single-promise-in-promise-methods: Narrow AST dispatch (#28353) (Cam McHenry)
  • 483c4c9 linter/eslint/no-compare-neg-zero: Narrow no-compare-neg-zero dispatch (#28352) (Cam McHenry)
  • 56c99c6 linter/eslint/no-unsafe-negation: Narrow AST dispatch (#28351) (Cam McHenry)
  • 84d974b linter/unicorn/prefer-string-starts-ends-with: Narrow AST dispatch (#28350) (Cam McHenry)
  • 142ef4f unicorn: Narrow no-await-in-promise-methods dispatch (#28349) (Cam McHenry)
  • a3dc7a2 linter/unicorn/no-await-expression-member: Optimize AST dispatch (#28348) (Cam McHenry)
  • 481b638 linter/plugins: Create AST nodes with Object.create instead of __proto__ literals (#27816) (Charles Wang)

oxfmt v0.76.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:01
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • 296623d oxfmt: [BREAKING] Format parser:html files by oxc_formatter_htmlish (#28273) (Yuji Sugiura)

🚀 Features

  • 336b2c1 oxfmt: Support html-in-js templates closing a dynamic tag name (#28389) (Yuji Sugiura)
  • 0a42af6 formatter_htmlish: Format end tags of omitted html, head and body (#28388) (Yuji Sugiura)
  • 44d8c2b formatter_htmlish: Implement HTML-ish formatter Html variant (#28272) (Yuji Sugiura)
  • 36e5ddb oxfmt: Add debug span for reading files (#28204) (leaysgur)

🐛 Bug Fixes

  • dbcc358 formatter: Keep arrow conditional body parens before a leading function/class (#28710) (Yuji Sugiura)
  • fef809a formatter_htmlish: Handle XHTML (#28703) (leaysgur)
  • f3dd201 formatter_htmlish: Keep SVG text under xml:space="preserve" as written (#28382) (Yuji Sugiura)
  • fb3aefa formatter: Keep source parens around html-in-js placeholders past comments (#28381) (Yuji Sugiura)
  • e738dae formatter: Quote keys added in an HTML event handler with single quotes (#28380) (Yuji Sugiura)
  • 2e7a629 oxfmt: Format HTML in a <script> body as an embedded part (#28379) (Yuji Sugiura)
  • f00862b formatter: Keep parens around a generic function type in a type assertion (#28173) (vidigoat)
  • 9ead5c4 formatter: Handle this.b and super.b like foo.b (#28200) (leaysgur)
  • 72a54cf formatter: Break parens of (a + b)[c] like (a + b).c (#28199) (leaysgur)
  • b8f4f34 formatter: Print x.b and x.#b samely (#28193) (leaysgur)
  • 9ddccb7 formatter: Keep parens for private field (#28188) (leaysgur)

⚡ Performance

  • b6f1ac9 formatter_markdown: Bump parser to 0.0.4 and skip unread work (#28713) (leaysgur)
  • 633ee96 formatter_css: Use u32 spans (#28708) (leaysgur)
  • f680ee1 formatter_yaml: Use multiline flag for flow scalars (#28707) (leaysgur)
  • ff7c203 formatter_css: Avoid repeated scans and allocations in values (#28706) (leaysgur)
  • 7cd46cb formatter_htmlish: Search script end tags by < in embedded (#28704) (leaysgur)
  • 46f8efd formatter_graphql: Print block string lines borrowed from the source (#28701) (leaysgur)
  • dce1485 formatter_htmlish: Skip escaping attr values without the chosen quote (#28700) (leaysgur)
  • e9392c8 formatter_core: Search line terminators with memchr (#28699) (leaysgur)
  • ceb26be formatter_htmlish: Use char to escape attr quotes (#28697) (leaysgur)
  • 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)

📚 Documentation

  • 303d9e8 formatter: Strengthen start-token-no-double-parens rationale (#28711) (Yuji Sugiura)
  • a82ce83 oxfmt: Update unclassified divergence (#28685) (Yuji Sugiura)
  • 7f18c20 formatter_htmlish: Note class and srcset are formatted with embeddedLanguageFormatting: off (#28465) (Yuji Sugiura)
  • 01ed68a oxfmt,formatter_htmlish,formatter: Clean up behavior comments (#28384) (Yuji Sugiura)
  • a363c27 formatter_css,formatter_yaml: Point parser citations at AGENTS.md (#28466) (Yuji Sugiura)
  • 6586050 formatter_core: Document tab width in text width policy (#28393) (leaysgur)
  • 49fbffb formatter_core: Tighten FORMATTER_POLICY (#28206) (leaysgur)

oxc crates_v0.157.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 19:53
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 8dd67a6 transform-react: Expose TypeScript transform options (Tomas Särnhammar)
  • deed7dc parser: More friendly error for duplicate import attribute key (#28262) (sapphi-red)

🐛 Bug Fixes

  • eaa8e90 ecmascript: Avoid numeric + folding when an operand may be a string (#28544) (camc314)
  • b03c7b8 regular_expression: Allow incomplete oversized legacy quantifiers (#28449) (Boshen)
  • 128c67d semantic: Check strict eval and arguments writes by reference flags (#28445) (Boshen)
  • c97c43c parser: Reject TypeScript default exports in JavaScript (#28440) (Boshen)
  • fdd119f span: Count Unicode characters when filtering typo suggestions (#28452) (Boshen)
  • cb64638 regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen)
  • fc0eed3 semantic: Stop let-binding scans at arrow functions (#28444) (Boshen)
  • 3421516 parser: Preserve default import names in reexports (#28442) (Boshen)
  • a1e7e5f parser: Reject optional class members in JavaScript (#28439) (Boshen)
  • 5b9a7bc parser: Parse sloppy let expressions and labels (#28438) (Boshen)
  • 8e61652 regex: Reject templates without cooked values (#28345) (Boshen)
  • 3b36543 parser: Preserve in-context after TypeScript type arguments (#28300) (Boshen)
  • 2e3126c regex: Decode constructor patterns and flags consistently (#28298) (Boshen)
  • 8a90be2 regex: Track capture groups and disjunction identity (#28297) (Boshen)
  • 3dc2cb0 regex: Preserve escape values and boundaries (#28296) (Boshen)
  • fc8acbc parser: Handle leading-zero numeric exponents (#28295) (Boshen)
  • 91a638d parser: Normalize raw template line endings with invalid escapes (#28285) (Boshen)
  • 2ac9a42 parser: Allow parenthesized private-in expressions (#28284) (Boshen)
  • 052bca9 ast: Prevent greyed out fields in AST types in IDEs (#28335) (overlookmotel)
  • ed7df7d ast/estree: Include comments in TS Program span (#28326) (camc314)

⚡ Performance

  • 9b6b7bf regular_expression: Advance validated Unicode escapes directly (#28514) (Boshen)
  • 82e1982 regular_expression: Share Unicode property name prefixes (#28513) (Boshen)
  • 5395a40 regular_expression: Parse class set character prefixes once (#28512) (Boshen)
  • 3708934 regular_expression: Defer literal range dash allocation (#28511) (Boshen)
  • d85ee3d semantic: Skip arguments ancestry checks outside classes (#28510) (Boshen)
  • cf81d07 semantic: Reuse private reference resolution (#28509) (Boshen)
  • a79eebc semantic: Avoid duplicate maps for public JavaScript members (#28508) (Boshen)
  • 235ca3b semantic: Skip escape checks for unescaped strings (#28507) (Boshen)
  • babf44c parser: Reuse shorthand assignment target identifiers (#28504) (Boshen)
  • 444f24a ecmascript: Short-circuit simple parameter checks for rest (#28503) (Boshen)
  • 04b20c0 semantic: Compute duplicate parameter policy once per list (#28446) (Boshen)
  • dbf8482 parser: Use token lookahead for simple function types (#28489) (Boshen)
  • bca1275 parser: Avoid unused destructuring rest capacity (#28499) (Boshen)
  • 691be5c parser: Compact cover initialized name storage (#28495) (Boshen)
  • b3b5444 parser: Build simple arrow bindings directly (#28493) (Boshen)
  • e1c9baf parser: Disambiguate single-identifier arrow heads (#28491) (Boshen)
  • 550e98a regular_expression: Avoid rescanning unique capture names (#28450) (Boshen)
  • 10e9fc7 parser: Skip duplicate lookup for singleton import attributes (#28441) (Boshen)
  • 5238839 parser: Use a stack buffer for float separators (#28435) (Boshen)
  • 6e35e3c parser: Fast-path leaf expressions before delimiters (#28432) (Boshen)
  • 3d7512c parser: Decode Unicode identifiers once (#28414) (Boshen)
  • 30f59f4 parser: Factor object type opening brace (#28430) (Boshen)
  • 028a267 parser: Always inline postfix update parsing (#28429) (Boshen)
  • 1b5a171 parser: Reuse export kind classification (#28424) (Boshen)
  • 179a432 parser: Factor return type identifier parsing (#28416) (Boshen)
  • 553dd1d parser: Inline hot paths and fold function dispatch (#28404) (Boshen)
  • de75d56 parser: Combine parenthesized arrow lookahead (#28412) (Boshen)
  • a768a0c parser: Reuse comment annotations after rewind (#28408) (Boshen)
  • 563d92a parser: Skip redundant source cursor updates (#28409) (Boshen)
  • 7941ca9 parser: Factor tuple identifier parsing (#28398) (Boshen)
  • 426c151 parser: Construct completed tokens without intermediate writes (#28291) (Boshen)
  • df42953 minifier: Don't request another pass for block unwrapping (#28315) (Dunqing)
  • c2d663d parser: Avoid vectors for single parenthesized expressions (#28374) (Boshen)
  • 50bd0a9 parser: Size delimited lists after the first element (#28373) (Boshen)
  • bd869b5 parser: Bypass redundant operand parsing (#28372) (Boshen)
  • 455fc09 parser: Skip keyword checks for plain identifier expressions (#28371) (Boshen)
  • 61303fb parser: Fast-path identifier operands (#28306) (Boshen)
  • 6cf5b1a parser: Guard arrow and conditional parsing (#28305) (Boshen)
  • 3666939 parser: Specialize identifier reference parsing (#28303) (Boshen)
  • 0d6641a parser: Skip inapplicable expression parsing paths (#28294) (Boshen)
  • 3be7997 parser: Reduce lexer search batch size (#28292) (Boshen)
  • ab5655a regex: Remove redundant character-class and quantifier checks (#28288) (Boshen)
  • ec8e8d4 parser: Remove redundant grammar and lexer checks (#28287) (Boshen)
  • c903f5c parser: Specialize known-token parsing (#28286) (Boshen)
  • 2683225 str: static_ident! and static_str! macros guarantee const evaluation (#28340) (overlookmotel)
  • df90836 ast: Reduce compile time of #[ast] macro (#28336) (overlookmotel)
  • 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)

oxlint v1.90.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:51
Immutable release. Only release title and notes can be modified.
9b6fff4

🚀 Features

  • cf34678 oxlint: Export Oxlintrc type (#28132) (Sysix)
  • 831cdf1 oxlint: Require mininum oxlint-tsgolint version v7.0.2005 (#28118) (camc314)
  • d1b00f4 linter/typescript: Implement no-unsafe-enum-assignment rule (#28117) (camc314)
  • 165c91f linter/typescript/await-thenable: Support allowMixedPromiseArrays option (#28116) (camc314)

🐛 Bug Fixes

  • 7f3c908 linter/eslint/array-callback-return: Check callbacks passed with extra arguments (#28133) (sarankumar)
  • 53be530 linter: Filter by type aware rules when looking up tsgolint rule severity (#28138) (NavpreetSSidhu)
  • e0f8937 react-compiler: Compile a try whose catch is unreachable instead of panicking (#28066) (Dunqing)
  • f5b625f linter/eslint/no-useless-concat: See through parenthesized expressions (#27984) (Rahul Kashyap)
  • 4629bb2 linter/jest/no-conditional-expect: Check function expression callbacks (#28055) (camc314)
  • 5c84098 semantic,linter: Report names with lone surrogates in enum and lint checks (#27991) (Dunqing)
  • f3705a9 linter/eslint/prefer-const: Skip fixers if any declarator is reassigned (#28008) (Prince Jain)
  • 4c0fa90 minifier,linter: Keep delete of constant members and later JSX keys (#27990) (Dunqing)
  • 0298062 linter/arrow-body-style: Keep type assertions when adding a block body (#27978) (Yan Almeida)

oxfmt v0.75.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:51
Immutable release. Only release title and notes can be modified.
9b6fff4

🐛 Bug Fixes

  • 5042019 formatter: Keep fill layout for array with comment after [ (#28170) (leaysgur)
  • 9d37ff6 formatter: Use position-based comment checks for concise arrays (#28169) (leaysgur)
  • 016c4a2 formatter: Keep a comment before } inside a JSX spread child (#28103) (vidigoat)
  • 190bb1e formatter: Keep parens around an instantiation expression ending an operand through any tight parent (#28168) (leaysgur)
  • a5314a1 formatter: Keep ; before in and instanceof class members (#28166) (leaysgur)
  • 3a56e7c formatter: Keep closing HTML comments at the start of a line (#28064) (Cameron)
  • 23d23d6 formatter_markdown: Honor range ignore inside directives (#28164) (leaysgur)
  • 5f1fd3d formatter: Measure width heuristics by display width (#28098) (leaysgur)
  • a5a52cf formatter: Keep parens around private in expressions (#28096) (leaysgur)
  • 999496e formatter: Measure a short key by its display width (#28026) (vidigoat)
  • 7e9aa44 formatter: Keep parens around a looser operand of an instantiation expression (#28025) (vidigoat)
  • 6912d1f formatter: Keep an arrow signature that exactly fills the line for any body (#27989) (leaysgur)
  • eb1d9f9 formatter_core: Count a flat line space in fits only when text follows (#27987) (leaysgur)

⚡ Performance

  • 1ed93af data_structures: Copy short strings without a memcpy call (#27953) (leaysgur)
  • 7948f0b formatter_core: Shrink FormatElement to 16B (#28012) (leaysgur)
  • 788af22 formatter: Keep AstNodes on the stack, and only chain links in the arena (#27963) (leaysgur)

📚 Documentation

  • 068a8ea formatter: Fix up wording (#28167) (leaysgur)
  • db55461 formatter_core: Document text width divergence (#28095) (leaysgur)
  • 880d229 formatter: Add vitest-test-call to known divergences (#28006) (leaysgur)