Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Releases: oxc-project/oxc

oxc crates_v0.105.0

22 Dec 12:45
Immutable release. Only release title and notes can be modified.
0637049

Choose a tag to compare

🚀 Features

  • d99134d parser: Improve diagnostic message for phase imports (#17092) (camc314)
  • 36e08ef data_structures: Implement conversion traits for stack types (#17141) (overlookmotel)
  • 0e177f4 data_structures: Implement Send and Sync for stack types (#17135) (overlookmotel)
  • cdb6345 minifier: Remove unused import source/defer statements (#17085) (camc314)
  • 3e2ae7b regular_expression: Improve error messages (#16953) (sapphi-red)

🐛 Bug Fixes

  • ab43454 minifier: Preserve sideeffects of destructuring arguments in non-strict mode (#17249) (sapphi-red)
  • 5595642 minifier: Avoid arguments copy loop transformation in arrow functions (#17248) (sapphi-red)
  • f0ad6b7 minifier: Preserve sideeffectful destructing delcaration for array and object destruction (#17074) (Armano)
  • e08fdf1 linter/plugins: Include hashbang in comments (#17231) (overlookmotel)
  • 76b1dc7 minifier: Avoid incorrect logical assignment transformation when base object may be mutated (#16802) (camc314)
  • adb41ba allocator: AllocatorPool do not consume all memory on Windows (#17094) (overlookmotel)
  • b87600a allocator: Fix potential deadlock in FixedSizeAllocatorPool (#17112) (overlookmotel)

⚡ Performance

  • 14e5016 transformer/enum: Avoid cloning HashMap in IdentifierReferenceRename (#17210) (camc314)
  • 5aefb84 linter/plugins: Reduce size of walker code (#17176) (overlookmotel)
  • cee4a6c allocator: Use Stack in AllocatorPools (#17136) (overlookmotel)
  • eeeb53a semantic: Remove leave_kind (#17145) (camc314)
  • 009256e semantic: Inline leave_kind for TSPropertySignature (#17144) (camc314)
  • 2943e4d semantic: Inline leave_kind for TSTypeQuery (#17143) (camc314)
  • 2e65ac0 semantic: Inline leave_kind for CatchParameter (#17142) (camc314)

oxlint v1.35.0 & oxfmt v0.20.0

22 Dec 10:05
Immutable release. Only release title and notes can be modified.
1307b7b

Choose a tag to compare

Table of Contents

Oxlint v1.35.0

🚀 Features

  • d913f87 linter/plugins: Implement code path analysis (CFG) (#17229) (overlookmotel)
  • 33b4e63 linter/plugins: Support more selector classes in visitor (#17219) (overlookmotel)
  • 951a2a2 linter: Implement vue/no-deprecated-destroyed-lifecycle (#17119) (Tu Shaokun)
  • 9348f10 linter: Implement eslint/max-statements (#15804) (Pascal Chorus)
  • b2b87c6 linter/plugins: Add getRange and getLoc methods to SourceCode (#17179) (overlookmotel)
  • 0f63e75 linter: Implement react/no-unsafe (#16532) (Kenzo Wada)
  • 9e624c9 linter/react: Add version to ReactPluginSettings (#17169) (camc314)
  • 563b039 linter/plugins: Add SourceCode#getLines method (#17177) (overlookmotel)
  • ffc1674 linter: Add suggestion fix for unicorn/require-module-attributes (#17168) (camc314)
  • 16d9dc2 linter: Implement vitest/prefer-called-times (#17051) (秦宇航)
  • 30fb206 linter: Add unicorn/require-module-attributes rule (#17166) (Mikhail Baev)
  • 5b5f2fd linter/no-base-to-string: Add checkUnknown option (#17139) (camc314)
  • d03b855 linter/no-unsafe-member-access: Add allowOptionalChaining option (#17138) (camc314)
  • b86a134 linter/no-unnecessary-type-assertion: Add checkLiteralConstAssertions option (#17137) (camc314)
  • 09e8e31 linter: Implement unicorn/no-immediate-mutation rule (#17118) (Tu Shaokun)
  • 3e2ae7b regular_expression: Improve error messages (#16953) (sapphi-red)

🐛 Bug Fixes

  • e08fdf1 linter/plugins: Include hashbang in comments (#17231) (overlookmotel)
  • a3d203b linter/plugins: Make node, token, and comment objects have Object.prototype in prototype chain (#17220) (overlookmotel)
  • 6f753a8 linter/plugins: Fix :function selector class (#17218) (overlookmotel)
  • 4027039 linter/plugins: Reset ancestors if error during AST walk (#17207) (overlookmotel)
  • 376caf1 linter: Improve the error message for when the oxlint config file is invalid. (#17196) (connorshea)
  • c95a0ec linter: valid-title: fix diagnostic quoted in strings (#17180) (camchenry)
  • c08e6df linter/exhaustive-deps: Fix fixer incorrectly adding property chain from destructuring pattern (#17167) (camc314)
  • 5a7fcd1 linter/no-unused-vars: Correctly detect unused symbols in TypeScript namespaces (#17129) (camc314)
  • 2c45017 linter: Resolve import/extensions false positives and align with ESLint behavior (#14602) (Tyler Earls)
  • fc6e715 vscode: Lsp server path in quotes (only windows) (#17126) (Sysix)
  • aba2795 linter/no-single-promise-in-promise-methods: Preserve array structure in fixer for Promise.all (#17128) (camc314)
  • bfd4a1e linter/no-unused-private-class-members: Handle sequence expression correctly (#17127) (camc314)

⚡ Performance

  • b8e321c linter/curly: Remove iterating on all nodes (#17223) (camc314)
  • c48c406 linter/curly: Avoid additional parent AST lookup (#17222) (camc314)
  • 78df915 linter: Avoid multiple to_string_lossy calls in loop (#17212) (overlookmotel)
  • 5aefb84 linter/plugins: Reduce size of walker code (#17176) (overlookmotel)

📚 Documentation

  • c14afd3 editor: Improve description for 'no-unused-disable-directives' settings options (#17236) (connorshea)
  • e14db66 linter: Ensure that the docs render default values for various rules that use enum config options (#17192) (connorshea)
  • 9b10c80 linter: Fix/improve the configuration docs for no-unused-vars (#17188) (connorshea)
  • e7d8c88 linter: Improve the react/no-unsafe rule's config docs. (#17194) (connorshea)
  • 1714719 linter/plugin: Correct doc comment on getNodeLoc function (#17178) (overlookmotel)
  • c7cbe69 linter: Improve the documentation for the import/extensions rule. (#17162) (connorshea)

Oxfmt v0.20.0

🚀 Features

  • 97a02d1 oxfmt: Add insertFinalNewline option (#17251) (leaysgur)
  • a3f3c58 oxfmt: Support TOML(v1.0 only) files (#17113) (leaysgur)

🐛 Bug Fixes

  • c83f90c formatter: Should expand call arguments group when the argument will break (#17254) (Dunqing)
  • def4ec1 formatter: Wrongly added an indentation for an union type when there is a leading line comment (#17252) (Dunqing)
  • 15e2d37 formatter: Diff with Prettier on hook with spread arguments function (#17246) (Dunqing)
  • 1921b85 formatter: Shorthand property broken with consistent quote props (#17245) (Dunqing)
  • 6d03edd formatter: Method signature missed a semicolon when it is on the same line with a property (#17243) (Dunqing)
  • 7b810f4 oxfmt: Use correct root dir with ignore and overrides for nested cwd (#17244) (leaysgur)
  • cdb80d4 oxfmt: Resolve .editorconfig root dir from cwd (#17093) (leaysgur)

oxc crates_v0.104.0

19 Dec 02:19
Immutable release. Only release title and notes can be modified.
c90ab78

Choose a tag to compare

🚀 Features

  • d209c21 allocator: Add cap to FixedSizeAllocatorPool and block when exhausted (#17023) (Cameron)
  • fb2af91 allocator: Add bitset utils (#17042) (zhaoting zhou)
  • c16082c tasks/compat_data: Integrate node-compat-table (#16831) (Boshen)
  • 5586823 span: Extract TS declaration file check to its own function (#17037) (camchenry)
  • 3d2b492 minifier: Fold iife arrow functions in call expressions (#16477) (Armano)
  • 67e9f9e codegen: Keep comments on the export specifiers (#16943) (夕舞八弦)
  • cb515fa parser: Improve error message for yield as identifier usage (#16950) (sapphi-red)
  • dcc856b parser: Add help for new_dynamic_import error (#16949) (sapphi-red)
  • c3c79f8 parser: Improve import attribute value error message (#16948) (sapphi-red)
  • 291b57b ast_tools: Generate TS declaration files for deserializer and walk files (#16912) (camc314)
  • 74eae13 minifier: Remove unused import specifiers (#16797) (camc314)

🐛 Bug Fixes

  • fb9e193 linter: OOM problems with custom plugins (#17082) (overlookmotel)
  • e59132b parser/napi: Fix lazy deser (#17069) (overlookmotel)
  • a92faf0 ast_tools: Support u128 in assert_layouts generator (#17050) (overlookmotel)
  • 47b4c2f minifier/docs: Correct hyperlink path in OPTIMIZATIONS.md (#16986) (GRK)
  • 3002649 transformer/typescript: Remove unused import equals declaration (#16776) (Dunqing)
  • 5a2af88 regular_expression: Correct named capture group reference error (#16952) (sapphi-red)

⚡ Performance

  • 3c39d46 allocator: Hold Mutex lock for shortest possible time in FixedSizeAllocatorPool (#17099) (overlookmotel)
  • b657bb6 allocator: Reduce time Mutex lock is held in FixedSizeAllocatorPool::get (#17079) (overlookmotel)
  • 1f3b19b ast: #[ast] macro use #[repr(transparent)] for single-field structs (#17052) (overlookmotel)
  • 225f229 parser: Use SmallVec for duplicate default export detection (#16801) (camc314)

📚 Documentation

  • a9c419f traverse: Update safety comments (#16944) (overlookmotel)

oxlint v1.34.0 & oxfmt v0.19.0

19 Dec 02:44
Immutable release. Only release title and notes can be modified.
2804276

Choose a tag to compare

Table of Contents

Oxlint v1.34.0

🚀 Features

  • 6cc3fdf linter/no-inferrable-types: Implement fixer (#17090) (camc314)
  • 2067997 linter/no-negation-in-equality-check: Implement suggestion (#17084) (camc314)
  • 552f9ef vscode: Auto-generate VSCode README configuration from package.json (#16970) (Copilot)
  • 9190c4b linter/no-unnecessary-array-flat-depth: Implement fixer (#17057) (camc314)
  • ed789de linter/misrefactored-assign-op: Implement fixer (#17056) (camc314)
  • a0f74a0 linter/config: Allow aliasing plugin names to allow names the same as builtin plugins (#15569) (Cameron)
  • a43d251 linter/plugins: RuleTester support languageOptions.globals (#17009) (overlookmotel)
  • 35070d9 linter/bad-bitwise-operator: Implement fixer (#17006) (camc314)
  • 322d995 linter/prefer-enum-initializers: Implement fixer (#17004) (camc314)
  • ae1e5bc vscode: Add support for tsgolint binary configuration (#16921) (ColemanDunn)
  • 3bfe31e linter/eslint-plugin-vitest: Add prefer-called-with as vitest compatible jest rule (#16993) (Said Atrahouch)
  • 0cd075f linter/eslint-plugin-jest: Add fix capabilities to prefer-called-with rule (#16987) (Said Atrahouch)
  • 357564b linter: Add options for typescript/require-array-sort-compare rule. (#16980) (connorshea)
  • 2b0ffba linter: Add options for typescript/no-meaningless-void-operator rule. (#16981) (connorshea)
  • 8bc4287 linter/plugins: Validate options against schema (#16974) (overlookmotel)
  • fdc7d08 linter: Implement eslint/capitalized-comments (#16896) (Tu Shaokun)
  • f8b6561 linter: Add support for test.for in vitest (#16925) (camchenry)
  • 7ee0379 linter/eslint-plugin-vitest: Implement prefer-spy-on (#16426) (Said Atrahouch)
  • fc96ee0 linter: Implement jest/prefer-to-have-been-called-times (#16938) (秦宇航)
  • 291b57b ast_tools: Generate TS declaration files for deserializer and walk files (#16912) (camc314)
  • e31da2a linter: Implement jest/perfer-to-have-been-called (#16899) (秦宇航)
  • 1a31306 linter/eslint-plugin-vitest: Add require-hook as vitest compatible jest rule (#16880) (Said Atrahouch)
  • cd3db21 linter: Add ignoredTypeNames option to no-base-to-string rule (#16898) (camc314)
  • 763b25a linter: Implement eslint/no-inline-comments (#16885) (Tu Shaokun)

🐛 Bug Fixes

  • fb9e193 linter: OOM problems with custom plugins (#17082) (overlookmotel)
  • 005ec25 linter: Permit $schema .oxlintrc.json struct (#17060) (Copilot)
  • fd03131 linter/plugins: Handle plugin names containing slashes (#17073) (overlookmotel)
  • b2a4fac linter/plugins: Error if plugin name alias is not normalized (#17071) (overlookmotel)
  • e046c4e linter/no-misused-spread: Add rule options support (#17054) (camc314)
  • 5c1a9e0 linter/no-deprecated: Add rule options support (#17053) (camc314)
  • 8c9cafe linter: import/consistent-type-specifier-style: add support for declaration files (#16979) (camchenry)
  • dab4780 linter/no-empty-pattern: Misleading help message for arrays (#17039) (Copilot)
  • 67f8c5d linter/plugins: Get correct plugin name in all cases (#17033) (overlookmotel)
  • 674dab9 linter/plugins: Fix indentation in error message (#17018) (overlookmotel)
  • 6524f72 linter/plugins: Add @types/node dev dependency to oxlint package (#17016) (overlookmotel)
  • 7a35513 linter/plugins: Better error for null in globals in RuleTester (#17011) (overlookmotel)
  • 42603ba linter/plugins: Always define languageOptions.globals (#17008) (overlookmotel)
  • 4cdc2f8 linter: Fix VITEST override rule list and add test for alphabetizing the two lists (#16975) (Connor Shea)
  • e466562 linter/consistent-type-definitions: Handle parenthesized types in rule (#16998) (camc314)
  • fce267c linter: Correct vitest plugin source to be @vitest/eslint-plugin (#16976) (connorshea)
  • 477bb57 linter: Fix vitest/no-restricted-vi-methods and add tests for it. (#16971) (connorshea)
  • 7d6974d linter: Ignore oxlint directive comments in capitalized-comments (#16989) (Tu Shaokun)
  • 23ac6b1 linter/plugins: Apply defaults from meta.schema to options (#16930) (overlookmotel)
  • 2f946cf linter/plugins: Error if defaultOptions is not JSON-serializable (#16959) (overlookmotel)
  • d8b8a57 linter/plugins: Freeze whole of merged options (#16958) (overlookmotel)
  • d446c43 linter: Prevent extra fields from being present on oxlint config file (#16874) (connorshea)
  • b845871 linter/plugins: Correctly handle object with __proto__ keys in options merging (#16928) (overlookmotel)
  • c897794 linter: Fix eslint/sort-imports allowSeparatedGroups not working with single empty line (#16012) (Duc Nghiem Xuan)
  • 0c347a1 linter/array-type: Handle satisfies expression (#16903) (camc314)

⚡ Performance

  • 70d853c linter: Avoid cloning source text when cloning AST into fixed-size allocator (#17088) (overlookmotel)
  • 4d389f7 linter: Less bounds checks in normalize_plugin_name (#17030) (overlookmotel)
  • fd8e9c6 linter/plugins: Speed up cloning JSON objects (#16997) (overlookmotel)
  • d77e22d linter/plugins: Use DEFAULT_OPTIONS for rules with empty array as default options (#16913) (overlookmotel)

📚 Documentation

  • 6d053b4 linter: Fix typo in doc comment (#17091) (overlookmotel)
  • b5f3c91 linter: Document intentional exclusion of ignoreCase option in jsx-no-duplicate-props (#17046) (Copilot)
  • a0bf5d8 linter: Fix the config option docs for no-inline-comments rule. (#16983) (connorshea)
  • ca26a11 linter/plugins: Fix typo in doc comment (#16966) (overlookmotel)
  • 3183bf8 linter/plugins: Fix typo in JSDoc comment (#16900) (overlookmotel)

Oxfmt v0.19.0

🚀 Features

  • 15dfb55 oxfmt: Respect single nearest .editorconfig (#17043) (leaysgur)
  • 8c33ff4 oxfmt: Expose Node.js API: format(fileName, sourceText, options?) (#16939) (leaysgur)

🐛 Bug Fixes

  • d340c87 oxfmt: Update api FormatOptions type with & Record<string, unknown> (#17036) (leaysgur)
  • 827a256 oxfmt: Place ignorePatterns at bottom of JSON in --migrate prettier (#16926) (Boshen)

oxc crates_v0.103.0

15 Dec 10:23
Immutable release. Only release title and notes can be modified.
e6ad960

Choose a tag to compare

💥 BREAKING CHANGES

  • 320c09f ast, parser, linter, codegen, formatter: [BREAKING] Rename CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)

🚀 Features

  • aafcf3e minifier: Remove empty [] and {} declaration (#16855) (Armano)
  • d221921 semantic: ScopeFlags::With (#16291) (Aapo Alasuutari)
  • 083e081 semantic: Add TS2670 error for global scope augmentation without declare modifier (#16746) (camc314)
  • 30a9076 ast, parser, codegen: Add CommentKind::MultilineBlock (#16479) (Dunqing)

🐛 Bug Fixes

  • d2f9461 minifier: Preserve classes with decorators (#16878) (Copilot)
  • 99c022e transformer: Revert "fix(transformer): validate JSX pragma values and reject invalid identifiers" (#16793) (Copilot)
  • cb88414 parser: Consume semicolon after let.x and let?.x (#16857) (Copilot)
  • d3208dc parser: Parse let?.x (#16840) (Copilot)
  • 250feb3 transformer: import.meta.foo.bar matches and replaces import.meta.bar (#16636) (秦宇航)
  • 92788c7 semantic: Add TS error code 1235 to namespace declaration diagnostic (#16747) (camc314)
  • 853c20d transformer: Validate JSX pragma values and reject invalid identifiers (#16675) (Copilot)
  • 0be98b9 semantic: Add TS1016 error code to required parameter after optional diagnostic (#16685) (camc314)
  • 75d489a semantic: Add TS error code to function implementation missing diagnostic (#16518) (camc314)
  • e4fad5e semantic: Add TS error code to constructor implementation missing diagnostic (#16517) (camc314)

oxlint v1.33.0 & oxfmt v0.18.0

15 Dec 11:02
Immutable release. Only release title and notes can be modified.
5b1bf4a

Choose a tag to compare

Table of Contents

Oxlint v1.33.0

🚀 Features

  • 5a95f62 linter: Implement eslint/no-sequences rule (#16872) (Tu Shaokun)
  • 99c0496 linter/approx-constant: Implement fixer (#16847) (camc314)
  • f5e752c linter/eslint-plugin-vitest: Add no-large-snapshot as vitest compatible jest rule (#16846) (Said Atrahouch)
  • 08bf389 linter/no-regex-spaces: Implement fixer (#16837) (camc314)
  • 652a2bf linter/eslint-plugin-vitest: Add prefer-to-contain as vitest compatible jest rule (#16836) (Said Atrahouch)
  • 55eb0dc linter: Implement eslint/no-loop-func rule (#16830) (Tu Shaokun)
  • 8bb67a6 eslint-plugin-jest: Add fix capabilities to prefer to contain rule (#16809) (Said Atrahouch)
  • 1bdaab1 linter/prefer-nullish-coalescing: Add rule (#16778) (camc314)
  • 057b75e linter: Implement eslint/accessor-pairs rule (#16820) (Tu Shaokun)
  • 1f42ad3 linter: Auto-fixer for extra cases in unicorn/prefer-query-selector (#16787) (Hamir Mahal)
  • 67bde85 linter: Implement no-promise-executor-return rule (#16779) (Tu Shaokun)
  • 3ffe342 linter: Implement eslint/no-implicit-coercion rule (#16735) (Tu Shaokun)
  • 725a5c0 linter: Implement disallows using this in an exported function rule (#15745) (Rintaro Itokawa)
  • fb4700a linter: Add react/jsx-props-no-spreading rule (#15769) (Mikhail Baev)
  • a1d9bbd linter/eslint-plugin-vitest: Reuse no-mocks-import jest linter rule (#16540) (Said Atrahouch)
  • e1b1bc3 linter: Add react/no-redundant-should-component-update rule (#16147) (Mikhail Baev)
  • 200d17b linter: Add unicorn/prefer-keyboard-event-key rule (#16611) (Rintaro Itokawa)
  • a082040 editor: Adjust oxlint oxfmt config file editor supporting (#16616) (Liang Mi)
  • 2b73b14 linter/plugins: Support parserOptions.ecmaFeatures.jsx option in RuleTester (#16690) (overlookmotel)
  • 563eab7 linter/plugins: Add parserOptions.lang option to RuleTester (#16688) (overlookmotel)
  • e39f487 linter/plugins: Add ignoreNonFatalErrors option to RuleTester (#16672) (overlookmotel)
  • 4cf1353 linter/plugins: RuleTester support languageOptions.sourceType (#16660) (overlookmotel)
  • 8550c0f linter: Add unicorn/prefer-default-parameters rule (#16620) (Rintaro Itokawa)
  • 8c8b6d9 linter/plugins: Add languageOptions types to RuleTester config types (#16642) (overlookmotel)
  • 554250e linter/plugins: RuleTester parser support options (#16641) (overlookmotel)
  • 30a9076 ast, parser, codegen: Add CommentKind::MultilineBlock (#16479) (Dunqing)
  • 767db50 linter: Promote constructor_super rule from nursery to correctness (#16605) (camc314)
  • 7c7219e linter: Promote no_map_spread rule from nursery to perf (#16604) (camc314)

🐛 Bug Fixes

  • bb86e0e linter: Fix empty-tags rule logic. (#16873) (connorshea)
  • a998ceb linter/unicorn/prefer-dom-node-dataset: Ignore awaited getAttribute call (#16882) (Kei Sakamoto)
  • eccffcf linter/plugins: report() accept loc with no end (#16859) (overlookmotel)
  • d402242 linter: Fix the config option docs for array-callback-return rule. (#16854) (connorshea)
  • d3208dc parser: Parse let?.x (#16840) (Copilot)
  • b16fe64 linter: Fix incorrect allowNames config option name in typescript/no-this-alias rule. (#16852) (connorshea)
  • 3302fcb linter/plugins: Sort visitors in order of specificity (#16834) (overlookmotel)
  • 50e0a23 linter: Rewrite constructor-super to use iterative dataflow analysis (#16706) (camc314)
  • cb51c74 linter: Mark consistent-type-definitions fix as dangerous inside declare global blocks (#16745) (camc314)
  • 36c9097 linter/plugins: RuleTester sort diagnostics before comparing to errors (#16741) (overlookmotel)
  • 32e23f7 linter/plugins: Correct punctuation in error message (#16718) (overlookmotel)
  • 6832464 linter/plugins: Do not escape tab or CR in test case names in RuleTester (#16712) (overlookmotel)
  • 3895d66 linter/no-invalid-fetch-options: False positive with member expression as method (#16687) (Copilot)
  • 0003958 linter: Jsx-a11y/iframe-has-title recognizes member expressions (#16669) (copilot-swe-agent)
  • 6cddbe7 linter/prefer-at: Wrap expressions in parentheses when needed for member access (#16643) (camc314)
  • 678e43b linter/unicorn: Fix ASI hazard in prefer-spread rule fixer (#16440) (camc314)

⚡ Performance

  • 9c1be35 linter/approx-constant: Break after first match to avoid extra iterations (#16848) (camc314)
  • 6b1a7b5 linter/plugins: Store specificity in a single integer (#16835) (overlookmotel)
  • 3b7d345 linter/plugins: Use start and end instead of range in tokens methods (#16808) (overlookmotel)
  • 4f9d17f linter/plugins: Remove unnecessary check (#16750) (overlookmotel)
  • a5dc4c6 oxlint: Run e2e tests concurrently (#16651) (camc314)
  • 5eb8b14 lsp: Avoid one clone in code actions request (#16543) (Sysix)
  • 0241b9a linter/plugins: Remove code for renaming global values (#16610) (overlookmotel)

📚 Documentation

  • 4542e75 linter: Fix typo and add vitest compatibility note to prefer_to_contain rule documentation (#16838) (copilot-swe-agent)
  • e8369ef linter: Improve docs for react/jsx-no-script-url rule. (#16817) (connorshea)
  • ba8fe68 linter: Update various rules to note that they can be disabled for TS code. (#16819) (connorshea)
  • bbafba5 linter: Improve the diagnostics for jest/no-confusing-set-timeout rule. (#16815) (connorshea)
  • 2195150 linter: Update docs for no-optional-chaining rule to clarify its safety today (#16727) (connorshea)
  • a2c9d16 linter: Improve eslint/no-loss-of-precision docs. (#16730) (connorshea)
  • 0740016 linter: Add docs for RuleCommentRule (#15699) (camc314)
  • 271e1ff linter: Add docs for DisabledRule (#15698) (camc314)
  • 32b641a linter/plugins: Fix typo in JSDoc comment (#16699) (overlookmotel)
  • 397bcd5 linter: Added in the missing jest rules that are compatible with vitest. (#16679) (Said Atrahouch)
  • dc793ad linter: Update no-unsafe-type-assertion to reflect correct rule behavior (#16646) (camc314)

Oxfmt v0.18.0

🚀 Features

  • 5e3ceb8 oxfmt: Support oxfmt --stdin-filepath (#16868) (leaysgur)
  • d4c0bb7 oxfmt: Support oxfmt --migrate prettier (JS side) (#16773) (leaysgur)
  • 2b9c3fe oxfmt: Support oxfmt --migrate [prettier] (Rust side) (#16771) (leaysgur)
  • 47c8710 oxfmt: Arrange cli mode and update help (#16728) (leaysgur)
  • afd6c44 oxfmt: Support quoteProps: consistent in Oxfmtrc (#16721) (leaysgur)
  • 559eff1 oxfmt: Support oxfmt --init (#16720) (leaysgur)
  • 686f2b7 formatter: Support consistent quote props (#16677) (Dunqing)
  • 28e0682 oxfmt: Enable experimental package.json sorting by default (#16593) (leaysgur)
  • feffe48 oxfmt: Trace which files are being formatted via OXC_LOG=debug (#16627) (Boshen)
  • 30a9076 ast, parser, codegen: Add CommentKind::MultilineBlock (#16479) (Dunqing)

🐛 Bug Fixes

  • a0efc41 formatter: Incorrect formatting for member chain call with an empty arguments call argument (#16875) (Dunqing)
  • bc2e0f8 oxfmt: Report exitCode correctly (#16770) (leaysgur)
  • d719988 oxfmt: Make Rust CLI as just formatting CLI (#16768) (leaysgur)
  • 2577814 oxfmt: Remove jsonc parser override for (j|t)sconfig(.*)?.json (#16762) (leaysgur)
  • e973965 formatter: Incorrect indentation of long assignment pattern in object (#16709) (Dunqing)
  • 2a63d74 formatter: Should not insert a semicolon for non-property signatures when no semicolon is set (#16700) (Dunqing)
  • 2495a39 formatter/sort-imports: Do not move leading comment if empty line found (#16676) (leaysgur)
  • 02f59ba oxfmt: Always respect ignored files even specified (#16632) (leaysgur)
  • 37c1a06 oxfmt: Exclude lock files to be formatted (#16629) (leaysgur)
  • 0d5da26 formatter: Disable layout assertions on some 32-bit platforms (#16625) (Dunqing)

⚡ Performance

  • c7db70b formatter: Optimize formatting of JSX element/fragment with a single child (#16631) (Dunqing)
  • 4843475 formatter: Do not write elements to the flat buffer if the layout is multline (#16630) (Dunqing)
  • 10b4f9f oxfmt: Make time measurement conditional (#16634) (Boshen)
  • 6f3aaba oxfmt: Use worker_threads by tinypool for prettier formatting (#16618) (leaysgur)

📚 Documentation

  • 8babdf9 oxfmt: Improve docs for .oxfmtrc.jsonc config fields and add markdownDescription fields to JSON Schema (#16587) (connorshea)

oxc crates_v0.102.0

08 Dec 11:53
Immutable release. Only release title and notes can be modified.
745873e

Choose a tag to compare

💥 BREAKING CHANGES

  • 083fea9 napi/parser: [BREAKING] Represent empty optional fields on JS side as null (#16411) (overlookmotel)

🚀 Features

  • 7a2afee parser: Add TS1174 error for classes extending multiple base classes (#15993) (sapphi-red)
  • da87812 semantic: Add TS2309 error for export assignment with other exports (#15992) (sapphi-red)
  • d6d2bcd minifier: Remove unused function calls that are marked by manual_pure_functions (#16534) (sapphi-red)
  • c90f053 minifier: Support . separated values for compress.treeshake.manualPureFunctions (#16529) (sapphi-red)
  • a607cc4 codegen: Preserve comments between CatchClause's param and body (#16167) (copilot-swe-agent)
  • 8c10694 semantic: Expose get_comment_at method (#16439) (camc314)
  • 3981e7a ast: Add get_comment_at to lookup a comment by span (#16438) (camc314)

🐛 Bug Fixes

  • 2c275bf transformer/styled-components: Named styled import doesn't work (#16573) (Dunqing)
  • 699406a napi/parser: Move ExportEntry::module_request field to first (#16412) (overlookmotel)
  • 12bd794 napi/parser: Move ExportEntry::module_request field to last (#16403) (overlookmotel)

⚡ Performance

  • 790beeb napi/parser: Do not remove extraneous options on JS side (#16447) (overlookmotel)

oxlint v1.32.0 & oxfmt v0.17.0

08 Dec 12:24
Immutable release. Only release title and notes can be modified.
203975f

Choose a tag to compare

Table of Contents

Oxlint v1.32.0

🚀 Features

  • 5c62c16 linter/plugins: Allow JS plugins to access globals (#16512) (Arsh)
  • ba7bd51 linter: Implement no-useless-return rule (#16388) (FMP1783)
  • fa605df linter: Fix arrow-body-style automatically (#16252) (Hamir Mahal)
  • 7584938 linter/plugins: Add ESLint compat mode to RuleTester (#16538) (overlookmotel)
  • b38c2d0 linter/plugins: Add SourceCode#lineStartIndices getter (#16510) (overlookmotel)
  • ba93ffc linter/plugins: Add SourceCode#tokensAndComments getter (#16503) (overlookmotel)
  • d2ca540 linter/plugins: Add SourceCode#isESTree property (#16499) (overlookmotel)
  • 9001234 linter: Add fix support for tsgolint diagnostics (#16344) (camc314)
  • 2d6bb85 editors: Toggle client after vscode config changing (#16162) (Liang Mi)
  • 0ec454c linter/plugins: Merge default options into options (#16358) (overlookmotel)

🐛 Bug Fixes

  • a806d74 linter: Use import type for ESTree in visitor.d.ts (#16472) (camc314)
  • 8933c84 linter: Fix jest/expect-expect rule docs. (#16550) (connorshea)
  • 1c08879 linter: Fix false positive in no-invalid-fetch-options for conditional expressions (#16570) (camc314)
  • 1a69b06 linter: Junit support for multiple files/errors/diagnostics (#16568) (Shrey Sudhir)
  • a7d435b linter/sort-keys: Preserve multi-line formatting in autofix (#16563) (camc314)
  • fd84dcc linter/plugins: RuleTester parser catch fatal errors (#16558) (overlookmotel)
  • ab4deb0 linter/plugins: Improve safety of options merging (#16549) (overlookmotel)
  • a58c76a linter: Fix the react/jsx-fragments rule config to take a string argument (#16175) (connorshea)
  • f7751cc linter/plugins: Fix TS types for RuleTester (#16546) (overlookmotel)
  • 6d33320 linter/plugins: Prevent user modifying the default config (#16545) (overlookmotel)
  • b4483c5 linter/plugins: Add config support skeleton to RuleTester (#16537) (overlookmotel)
  • 3a49158 linter/plugins: Improve TS types for tokens (#16502) (overlookmotel)
  • 0c14531 oxlint/lsp: Revalidate all known files after internal restart (#16407) (Sysix)
  • 2d3217e linter/plugins: Remove panics from lint_file and setup_configs (#16453) (overlookmotel)
  • 655341b linter/oxc: Not emit error when the threshold is zero and we haven't detected a barrel file (#16455) (Said Atrahouch)
  • b9f359f linter/no-var: Expand fix span to prevent conflicts with other rules (#16445) (camc314)
  • c6778f3 linter: Preserve original quote style in no-hex-escape fixer (#16410) (camc314)
  • 3ad913b linter: Improve rule docs page autofix description (#16281) (Hamir Mahal)
  • 0b7e00c linter: Handle keyword unary expressions in yoda rule fix (#16402) (camc314)
  • 5fd3096 lsp: Skip (un)registering file watcher when not dynamic watchers are supported (#16406) (Sysix)
  • 804144f lsp: Respect null as invalid settings for workspace/didChangeConfiguration (#16361) (Sysix)
  • 723a7e5 linter: Prevent invalid BigInt literal fix for exponential notation (#16401) (camc314)
  • 2589fb1 linter: Fix prefer_expect_resolves fixer for member expressions (#16393) (camc314)
  • 428c7cd linter: Wrap logical expressions in parentheses when fixing no-extra-boolean-cast (#16363) (camc314)
  • 3903567 linter: Skip prefer-string-raw in type annotations and .d.ts files (#16382) (camc314)
  • d490daa linter/func-names: Use centralized reserved keyword check and fix ancestor traversal (#16362) (camc314)
  • d846c53 tsgolint: Use expect when sending diagnostics (#16341) (camc314)
  • 114665d lsp: Watch for files when workspace folder is added & workspace/configuration is not supported (#16307) (Sysix)
  • f5d0ebb linter/func-names: Avoid suggesting reserved keywords as function names (#16352) (camc314)
  • d268135 linter/no-console-spaces: Preserve escape sequences in fixer output (#16349) (camc314)
  • b02c21a linter/valid-title: Preserve escape sequences in fixer output (#16348) (camc314)
  • 2373b76 linter/no-untyped-mock-factory: Fix fixer producing invalid syntax when newline exists after opening paren (#16351) (camc314)

⚡ Performance

  • 67cfa58 lsp: Avoid some clones (#16519) (Sysix)
  • 2a09665 oxlint/lsp: Store only LinterCodeAction instead of the complete DiagnosticReport (#16516) (Sysix)
  • 0ca9754 lsp: Avoid Uri to String and back to Uri conversion (#16470) (Sysix)
  • 2736636 lsp: Avoid cloning when revalidating diagnostics (#16469) (Sysix)
  • 793b989 linter/plugins: Move result-processing work off main JS thread (#16456) (overlookmotel)
  • 44dff7b linter/plugins: Skip serialization overhead when no errors (#16443) (overlookmotel)
  • 1aa2409 linter/plugins: Do not remove messageId field from DiagnosticReport before sending to Rust (#16442) (overlookmotel)
  • 5017db8 linter/plugins: Reduce calls to Path::to_string_lossy (#16429) (overlookmotel)
  • 194e357 linter: Use SmallVec for rule options (#16400) (Copilot)
  • e31b2bd linter: Only clone config if required (#16350) (overlookmotel)
  • 3026086 linter: Avoid cloning rule options (#16338) (overlookmotel)

📚 Documentation

  • fef77af linter: Fix jsx-a11y/img-redundant-alt configuration option names. (#16552) (connorshea)
  • c0766df linter: Add config option docs for unicorn/filename-case rule. (#16280) (connorshea)
  • e24aabd linter/plugins: Correct comment (#16559) (overlookmotel)
  • 514c724 linter: Fix the name of the IIFEs config option in eslint/max-lines-per-function (#16554) (connorshea)
  • 4d94438 linter/rules: Correct arrow body style options in documentation (#16509) (GRK)
  • 6bac4ec linter: Pull configuration struct doc comment when rendering config docs (#16288) (connorshea)
  • 8c85e08 linter/plugins: Add TODO comment (#16511) (overlookmotel)
  • a9b9298 linter/plugins: Add JSDoc comments to SourceCode properties (#16497) (overlookmotel)
  • 467cc1a linter/plugins: Improve comment on error branch (#16464) (overlookmotel)
  • 041b119 linter: Add config option docs to jest/consistent-test-it rule. (#16286) (connorshea)

🛡️ Security

  • d90ef9f deps: Update dependency rolldown to v1.0.0-beta.53 (#16428) (renovate[bot])

Oxfmt v0.17.0

🚀 Features

  • 3184f17 oxfmt: Pass filepath field to prettier formatting (#16591) (Yuji Sugiura)
  • 7bb3304 oxfmt: Pass populated config to prettier formatting (#16584) (leaysgur)
  • 69f84d2 oxfmt: Pass raw config to prettier formatting (#16582) (leaysgur)
  • a83a2ec oxfmt: Expose setupConfig(configJSON: string) napi callback (#16579) (leaysgur)
  • 930533f formatter: Convert single \r to \n in string and add a debug assertion to ensure that there is no \r in the text (#16531) (Dunqing)
  • af76b0e oxfmt: Support formatting HTML, YAML, GraphQL, Handlebars, Markdown, CSS files (#16524) (leaysgur)
  • 66b64ef oxfmt: Support formatting JSON files (#16523) (leaysgur)
  • 4767926 oxfmt: Prepare non-js/ts file support with prettier (#16480) (leaysgur)
  • 2b4ce5d oxfmt: Use dedicated format_by_xxx_formatter method by SourceType (#16417) (leaysgur)
  • 0867d2f oxfmt: Set up JS formatFile() function for Rust via napi (#16415) (leaysgur)
  • b6feb66 oxfmt: Rename embedded.ts with preparing formatFile() function (#16414) (leaysgur)
  • 80e6999 formatter: Add debug assertion to ensure that there is no empty content is passed in (#16475) (Dunqing)
  • 7374856 formatter/sort-imports: Support options.internalPattern (#16372) (leaysgur)
  • dd2cb62 oxfmt: Not error on explicit --write flag used (#16376) (leaysgur)

🐛 Bug Fixes

  • 267fadc formatter: Should not remove quotes for property keys that contains KATAKANA MIDDLE DOT (#16594) (Dunqing)
  • 06d6b43 formatter: Incorrectly treating a member chain with the test name as a test call expression (#16592) (Dunqing)
  • 50f3959 formatter: Should not expand the object pattern if its parent is an AssignmentPattern (#16590) (Dunqing)
  • 40b0134 formatter: Incorrect formatting of useImperativeHandle hook (#16533) (Dunqing)
  • 75393e7 formatter: Incorrect handling of CRLF for multiline block comment (#16528) (Dunqing)
  • ee0756b formatter: JSX text wrapping incorrect 2 (#16320) (Dunqing)
  • 36308b8 formatter: Fix indent for new expression with type cast (#16380) (leaysgur)

⚡ Performance

  • 6f16a8f formatter: Avoid using an indent with a empty content (#16474) (Dunqing)
  • 201c98f formatter: Early return when no comments need to be printed (#16432) (Dunqing)

oxc crates_v0.101.0

02 Dec 09:25
Immutable release. Only release title and notes can be modified.
701ab87

Choose a tag to compare

🚀 Features

  • 165f59d parser: Report empty expression in JSX attribute error (#16378) (leaysgur)

oxc crates_v0.100.0

01 Dec 15:08
Immutable release. Only release title and notes can be modified.
0872758

Choose a tag to compare

💥 BREAKING CHANGES

  • 74cf572 ast: [BREAKING] Make source field of TSImportType a StringLiteral (#16114) (copilot-swe-agent)
  • 43156ae ast: [BREAKING] Rename TSImportType argument field to source (#16110) (overlookmotel)
  • 934d873 napi: [BREAKING] Drop armv7-unknown-linux-musleabihf support (#16105) (Boshen)

🚀 Features

  • 669afe0 ast: Add Expression::is_jsx method (#16154) (Dunqing)
  • 17a8caa parser: Add diagnostic for JSX identifiers with hyphens (#16133) (camchenry)
  • 0549ae5 parser: Add diagnostic for expected ident after optional chain (#16132) (camchenry)
  • db839ae parser: Improve diagnostic for unexpected optional declarations (#16131) (camchenry)
  • bab4bc8 napi/parser: Add type annotations to parse-raw-worker test (#15998) (camc314)

🐛 Bug Fixes

  • f564687 isolated-declarations: Preserve variable declarations when type with same name is referenced in implements clause (#16328) (Copilot)
  • 35ed36c traverse: Fix panic when truncating non-ASCII variable names (#16265) (peter)
  • 9149a26 linter/plugins, napi/parser: Deep freeze visitor keys (#16293) (overlookmotel)
  • 6b54dab minifier: Incorrect non-null object condition simplification with && and || (#16161) (sapphi-red)
  • 9cc20a1 minifier: Avoid merging side effectful expressions to next assignment statement if the side effect may change the left hand side reference (#16165) (sapphi-red)
  • 91eb3f2 ast/estree: Convert TSImportType argument field to Literal (#16109) (overlookmotel)
  • 1199cee parser: Reject invalid modifiers on parameter properties with binding patterns (#16083) (camc314)
  • f376325 traverse: Remove console.log from build script (#16049) (overlookmotel)

⚡ Performance

  • 82d784f lexer: Reduce bounds checks in Lexer::get_string (#16317) (overlookmotel)
  • cc2f352 span: Add #[inline] to Atom methods (#16311) (overlookmotel)
  • ffca070 span: Add #[repr(transparent)] to Atom (#16310) (overlookmotel)
  • 02bdf90 linter/plugins, napi/parser: Reuse arrays in visitor keys (#16294) (overlookmotel)

📚 Documentation

  • 891e0b4 parser: Add note about falling back to parse TSType in TSImportType (#16119) (camc314)