Releases: oxc-project/oxc
Releases · oxc-project/oxc
oxlint v1.38.0 & oxfmt v0.23.0
Table of Contents
Oxlint v1.38.0
Oxfmt v0.23.0
🚀 Features
- a19cc93 oxfmt: Add debug logging to oxfmt LSP to troubleshoot resolved options at runtime (#17695) (Nicholas Rayburn)
🐛 Bug Fixes
- 3b4aced formatter: Should not treat multi-type arguments of TSTypeReference as a complex type (#17708) (Dunqing)
- dcfdd41 formatter: Should not set up tailwindcss callback when no tailwindcss configuration is set (#17696) (Dunqing)
- 6f65901 formatter: Return original classes when there are no tailwindcss classes sort callback (#17689) (Dunqing)
⚡ Performance
oxc crates_v0.107.0
🚀 Features
- 659c23e linter: Init note field boilerplate (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 23680a3 mangler: Skip mangling only in scopes affected by direct eval (#17612) (camc314)
- a7e1643 parser: Add TS2528 error code to duplicate_default_export diagnostic (#17558) (camc314)
🐛 Bug Fixes
- 1044116 ecmascript: Mark
new Symbolas non side-effect free (#17568) (camc314) - ab5e4ca isolated-declarations: Strip default values from rest parameter binding patterns (#17602) (camc314)
- 68b2e54 minifier: Prevent incorrect ??= transformation when member base is mutated (#17472) (copilot-swe-agent)
⚡ Performance
- 6067143 semantic: Remove hash when checking identifier (#17564) (camchenry)
- a28ab3d semantic: Avoid bounds check when checking string literal (#17545) (camc314)
- 04809d1 semantic: Use SIMD for finding backslashes in
check_string_literal(#17534) (camchenry) - 49ad2f0 semantic: Mark all diagnostic functions as
#[cold](#17487) (camc314) - ea82b50 transformer: Mark all diagnostic functions as
#[cold](#17486) (camc314) - d968e51 semantic: Mark
checker::checkasinline(always)(#17459) (camc314)
oxlint v1.37.0 & oxfmt v0.22.0
Table of Contents
Oxlint v1.37.0
💥 BREAKING CHANGES
🚀 Features
- 659c23e linter: Init note field boilerplate (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 6154c8c linter/eslint-plugin-vitest: Implemented vitest/warn-todo rule (#17228) (Said Atrahouch)
- 0043cd6 linter/eslint-plugin-vitest: Implement consistent-vitest-vi rule (#17389) (Said Atrahouch)
- a6d773d linter: Add full TS support to eslint/no-useless-constructor (#17592) (camc314)
- f02c0e7 linter/eslint: Implement complexity (#17569) (Nguyen Tran)
- bc7aae7 linter/no-unused-vars: Add fixer to remove unused catch bindings (#17567) (Don Isaac)
- 9e8ec78 linter/only-throw-error rule: Add
allowRethrowingoption for (#17554) (camc314) - b67e819 linter: Add fixer for
unicorn/prefer-response-static-jsonrule (#17559) (Mikhail Baev) - 44b0361 linter/vue: Implement no-this-in-before-route-enter (#17525) (yefan)
- ee34716 linter/react: Implement no-will-update-set-state (#17530) (Kenzo Wada)
- 3088e1d linter/react: Implement no-this-in-sfc (#17535) (Kenzo Wada)
- 29a2868 linter/jsx-a11y: Implement no-static-element-interactions (#17538) (Kenzo Wada)
- eadf057 linter: Enable tsconfig auto discovery by default (#17489) (Boshen)
- 12a7d6e website_linter: Add a count of rules with fixes available to rules table. (#17476) (Connor Shea)
🐛 Bug Fixes
- 77ccfe5 linter/no-standalone-expect: Support
it.failsandtest.fails(#17668) (Copilot) - b90243c linter/capitalized-comments: Handle URLs in multiline block comments correctly (#17664) (Copilot)
- a702f13 oxlint/lsp: Correct position for "disable for this file" with shebang (#17613) (Sysix)
- 19fdfb6 linter: Panic in
sort-keysrule with Unicode numeric characters (#17629) (Adel Rodríguez) - 2e8f469 vscode: Search for
node_modules/.bin/oxlint.exetoo (bun setup) (#17597) (Sysix) - be39906 linter/aria-proptypes: Allow template literals with expressions for string-type ARIA props (#17460) (Jökull Sólberg Auðunsson)
- 529901c linter: Include JS plugin rules when calculating total rule count (#17520) (connorshea)
- 96ef2cc linter: Print total rule # when using a single nested config (#17517) (connorshea)
- 9ad0f29 oxlint: Do not enable external plugin store when no external linter is passed (#17498) (Sysix)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
- ff70fe9 linter/no-standalone-expect: Allows expect in wrapper functions passed to test blocks (#17427) (Copilot)
- dab232f linter/catch-or-return: Handle arrow functions with implicit returns correctly (#17440) (Copilot)
- a38892a linter: Update no-unnecessary-template-expression docs and test case (#17453) (camc314)
⚡ Performance
- edbfdb9 linter/capitalized-comments: Use
trim_startovertrim(#17671) (camc314) - 605dbf1 vscode: Restrict searching for oxlint/oxfmt binaries only 3 levels deep + 10s timeout (#17345) (Sysix)
📚 Documentation
- 884fb63 linter/react: Improve docs for jsx-curly-brace-presence (#17579) (connorshea)
- 1d3ee07 linter: Improve rule explanation for
vue/no-this-in-before-route-enter. (#17581) (connorshea) - 5f189f8 linter/arrow-body-style: Correctly document default mode option (#17566) (Rägnar O'ock)
- bb2e8e4 linter: Add a note to the
typescript/no-var-requiresrule about the missingallowoption (#17551) (connorshea) - 655afc1 linter: Improve docs for
import/extensionsand add a few more tests (#17539) (connorshea) - 7e5fc90 linter: Update list of plugins that are reserved. (#17516) (connorshea)
Oxfmt v0.22.0
💥 BREAKING CHANGES
🚀 Features
- a680d99 formatter: Support migration of
prettier-plugin-tailwindcssin--migrate:prettier(#17652) (Dunqing) - c20ef0c formatter: Add TailwindCSS support for non-JS/TS files (#17648) (Dunqing)
- 26ed46b formatter: Add TailwindCSS support for JS/TS files (#16990) (Dunqing)
- 8fd4ea9 oxfmt:
options.embeddedLanguageFormattingis now"auto"by default (#17649) (leaysgur)
🐛 Bug Fixes
- f60a4d8 formatter: Should not hug the type literal when its parent param has an initialzier (#17660) (Dunqing)
- c9b5d7d formatter/sort_imports: Handle alignable_comment correctly (#17646) (leaysgur)
- 453222d formatter: Missing comment handling for end-of-line comments in member chains (#17659) (Dunqing)
- 0805ff2 formatter: Incorrect inline comment placement in try-catch (#17657) (Dunqing)
- 3a0c782 formatter: Don't move comments into optional call parentheses (#17582) (magic-akari)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
⚡ Performance
oxc crates_v0.106.0
🚀 Features
- 5f963dd allocator/bitset: Add
clearmethod to reset all bits (#17380) (camc314) - 289bff7 transformer: Export
ESFeaturefrom options (#17347) (shulaoda) - e031056 codegen: Add
sourcemapfeature flag (#17305) (Boshen) - 8e4409a minifier: Add
invalid_import_side_effectsoption (#17300) (sapphi-red) - 4ac23e1 parser: Produce syntax error for
({ foo(bar) })(#17267) (Boshen) - a15e183 parser: Change span for missing initializer in decleration (#17134) (camc314)
- 3ee71b0 parser: Add diagnostic for parameters with question mark and initializer (#17132) (camc314)
⚡ Performance
- 5fa85be semantic: Remove
enter_kind(#17439) (camc314) - 19b437b semantic: Inline
enter_kindforContinueStatement(#17436) (camc314) - d66a691 semantic: Inline
enter_kindforBreakStatement(#17435) (camc314) - 4a9b302 semantic: Inline
enter_kindCFG statement handling (#17433) (camc314) - d08356e semantic: Inline
enter_kindforTSTypeReference(#17432) (camc314) - ea2d639 semantic: Inline
enter_kindforTSClassImplements(#17431) (camc314) - e862cac semantic: Inline
enter_kindforTSInterfaceHeritage(#17430) (camc314) - 50bd7de semantic: Inline
enter_kindforCallExpression(#17429) (camc314) - 7dff312 semantic: Inline
enter_kindforYieldExpression(#17428) (camc314) - dff229c semantic: Inline
enter_kindforIdentifierReference(#17422) (camc314) - 3352e6c semantic: Inline
enter_kindforTSTypeQuery(#17421) (camc314) - 8e803ca semantic: Inline
enter_kindforTSPropertySignature(#17420) (camc314) - 739ed7c semantic: Inline
enter_kindforTSTypeParameter(#17419) (camc314) - c4ae687 semantic: Inline
enter_kindforTSEnumMember(#17418) (camc314) - 4c845a3 semantic: Inline
enter_kindforTSEnumDeclaration(#17417) (camc314) - 83cc44d semantic: Inline
enter_kindforTSInterfaceDeclaration(#17414) (camc314) - dc35189 semantic: Inline
enter_kindforTSTypeAliasDeclaration(#17413) (camc314) - 722fffa codegen: Restructure print_comments to avoid index comparisons in loop (#17402) (camc314)
- 7ec39d0 codegen: Use print_ascii_byte in more places (#17401) (camc314)
- 510ec00 codegen: Avoid allocation in PrivateIdentifier gen when not mangling (#17395) (camc314)
- d2afdcf semantic: Inline
enter_kindforTSModuleDeclaration(#17405) (camc314) - 1bda570 semantic: Inline
enter_kindforCatchParameter(#17404) (camc314) - 7284b76 semantic: Inline
enter_kindforFormalParameterRest(#17403) (camc314) - 585ddf8 semantic: Inline
enter_kindforFormalParameter(#17400) (camc314) - eacd876 semantic: Inline
enter_kindforBindingRestElement(#17399) (camc314) - adc657a semantic: Inline
enter_kindforPrivateIdentifier(#17398) (camc314) - 6e9d26b semantic: Inline
enter_kindforClassBody(#17397) (camc314) - d930962 semantic: Inline
enter_kindforVariableDeclarator(#17396) (camc314) - 900d42d semantic: Inline
enter_kindforTSImportEqualsDeclaration(#17394) (camc314) - f3afe57 semantic: Inline
enter_kindforImportNamespaceSpecifier(#17393) (camc314) - 19392df semantic: Inline
enter_kindforImportDefaultSpecifier(#17392) (camc314) - 22d46d0 semantic: Inline
enter_kindforImportSpecifier(#17391) (camc314) - e073925 mangler: Early exit in liveness walk when scope already marked live (#17382) (camc314)
- 50f0ddd mangler: Optimize slot assignment with pre-computed ancestor sets (#17379) (camc314)
- c3ff642 mangler: Avoid
ToStringallocations (#17378) (camc314) - 3886ddc semantic: Use match_module_declaration! macro instead of match guard (#17184) (camc314)
- 605a290 semantic: Use swap_remove instead of into_iter().next() in into_root (#17183) (camc314)
- 315c9ed semantic: Use
split_at_mutinstead of iterator incurrent_and_parent_mut(#17182) (camc314) - e35049b transformer: Avoid unneccessary vec allocation (#17270) (camc314)
📚 Documentation
oxlint v1.36.0 & oxfmt v0.21.0
Table of Contents
Oxlint v1.36.0
🚀 Features
- 5988dfa vscode: Show language server version inside sidebar status item tooltip (#17360) (Sysix)
- 71ead34 linter/no-nonoctal-decimal-escape: Implement suggestion (#17319) (GRK)
- d9aa426 vscode: Support diagnostic pull mode (#17211) (Sysix)
- 220e8e8 oxlint/lsp: Support
textDocument/diagnostic(#17209) (Sysix) - 267e255 linter/react: Implement react/no-did-mount-set-state (#17313) (Kenzo Wada)
- c813582 linter/react: Implement react/jsx-max-depth (#17279) (Kenzo Wada)
- 94a482b linter/node: Implement n/global-require (#17283) (Mikhail Baev)
- 5cc7c90 linter/plugins: Pass
envfrom Rust to JS (#17291) (overlookmotel) - ed79fca linter/eslint-plugin-vitest: Implement consistent-test-filename (#17284) (Said Atrahouch)
- e031056 codegen: Add
sourcemapfeature flag (#17305) (Boshen) - b97101a linter: Implement aria/proptypes (#17253) (mehm8128)
- a5ef127 linter: Auto-fixer for prefer-destructuring (#17235) (Hamir Mahal)
🐛 Bug Fixes
- 786a505 lsp: Fmt.configPath empty string handling (#17425) (copilot-swe-agent)
- 97aef58 language_server: Treat empty string config path as None in language server (#17415) (copilot-swe-agent)
- fec2863 linter: Respect
.gitignoreregardless of if a git repo is initialized (#17375) (copilot-swe-agent) - b7e8bca lsp: Do not sent de-registrations for watched files on shutdown request (#17318) (Sysix)
- c6690d1 rust: Remove unsupported tokio io-std feature for WASM compatibility (#17311) (Boshen)
- 7eaa660 linter/plugins: Set up global scope correctly (#17293) (overlookmotel)
- 79b83b0 linter/no-unused-vars: Handle non-null assertion in update expressions (#17281) (camc314)
- b547335 linter/import-first: Correctly respect all relative path imports (#17268) (Mohit Karekar)
⚡ Performance
- c27514c linter/only-used-in-recursion: Improve
skip_to_next_charslicing (#17374) (camchenry) - eecee5d linter: Inline
is_function_nodeinto run functions (#17373) (camchenry) - d2abc78 linter: No-multi-str: skip searching strings when in jsx attribute (#17327) (camchenry)
- 687ffd6 linter: Jest/no-confusing-set-timeout: do not lowercase import name (#17324) (camchenry)
📚 Documentation
Oxfmt v0.21.0
🚀 Features
- 4df8063 oxfmt: Respect
.gitignorein sub directries (#17352) (leaysgur) - 7c3dae3 formatter: Support Vitest test functions (#17340) (leaysgur)
- b00da37 formatter: Normalize line break for directive (#17303) (Dunqing)
🐛 Bug Fixes
- 1bf0ffc formatter: Incorrect JSX text wrapping when the expression container is an arrow function that will break (#17445) (Dunqing)
- 42ad9d6 formatter: JSXFragment missed a leading semicolon when semicolon is disabled (#17386) (Dunqing)
- c8c5341 formatter: Complete
is_complex_type_arguments()(take2) (#17362) (leaysgur) - 745bc5d formatter: Do not consider rest param as simple (#17354) (leaysgur)
- e836f37 formatter: Fix
Deno()to not detect as test functions (#17339) (leaysgur) - 09848b3 formatter: Handle more test functions (#17337) (leaysgur)
- a55bfc1 formatter: Count emoji sequences correctly (#17331) (leaysgur)
- c6690d1 rust: Remove unsupported tokio io-std feature for WASM compatibility (#17311) (Boshen)
- 0a39cba oxfmt: Update wrong doc comment (#17288) (leaysgur)
- 2d556cb formatter: Should treat TSMappedType as a complex type in assignment-like formatting (#17257) (Dunqing)
- fa5cef3 formatter: Shouldn't treat
TaggedTemplateExpressionas a simple argument in the member chain (#17256) (Dunqing) - 6ad3951 formatter: Trailing comments of JSX in call arguments are moved out the of call (#17255) (Dunqing)
oxc crates_v0.105.0
Immutable
release. Only release title and notes can be modified.
🚀 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
SendandSyncfor 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
argumentsin non-strict mode (#17249) (sapphi-red) - 5595642 minifier: Avoid
argumentscopy 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:
AllocatorPooldo 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
StackinAllocatorPools (#17136) (overlookmotel) - eeeb53a semantic: Remove
leave_kind(#17145) (camc314) - 009256e semantic: Inline
leave_kindforTSPropertySignature(#17144) (camc314) - 2943e4d semantic: Inline
leave_kindforTSTypeQuery(#17143) (camc314) - 2e65ac0 semantic: Inline
leave_kindforCatchParameter(#17142) (camc314)
oxlint v1.35.0 & oxfmt v0.20.0
Immutable
release. Only release title and notes can be modified.
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
getRangeandgetLocmethods toSourceCode(#17179) (overlookmotel) - 0f63e75 linter: Implement react/no-unsafe (#16532) (Kenzo Wada)
- 9e624c9 linter/react: Add
versiontoReactPluginSettings(#17169) (camc314) - 563b039 linter/plugins: Add
SourceCode#getLinesmethod (#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-attributesrule (#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-mutationrule (#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.prototypein prototype chain (#17220) (overlookmotel) - 6f753a8 linter/plugins: Fix
:functionselector class (#17218) (overlookmotel) - 4027039 linter/plugins: Reset
ancestorsif 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_lossycalls 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-unsaferule's config docs. (#17194) (connorshea) - 1714719 linter/plugin: Correct doc comment on
getNodeLocfunction (#17178) (overlookmotel) - c7cbe69 linter: Improve the documentation for the import/extensions rule. (#17162) (connorshea)
Oxfmt v0.20.0
🚀 Features
- 97a02d1 oxfmt: Add
insertFinalNewlineoption (#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
.editorconfigroot dir fromcwd(#17093) (leaysgur)
oxc crates_v0.104.0
Immutable
release. Only release title and notes can be modified.
🚀 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
yieldas identifier usage (#16950) (sapphi-red) - dcc856b parser: Add help for
new_dynamic_importerror (#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
u128inassert_layoutsgenerator (#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
Mutexlock for shortest possible time inFixedSizeAllocatorPool(#17099) (overlookmotel) - b657bb6 allocator: Reduce time
Mutexlock is held inFixedSizeAllocatorPool::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
oxlint v1.34.0 & oxfmt v0.19.0
Immutable
release. Only release title and notes can be modified.
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:
RuleTestersupportlanguageOptions.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-comparerule. (#16980) (connorshea) - 2b0ffba linter: Add options for
typescript/no-meaningless-void-operatorrule. (#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.forin 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.jsonstruct (#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/nodedev dependency tooxlintpackage (#17016) (overlookmotel) - 7a35513 linter/plugins: Better error for
nullinglobalsinRuleTester(#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-methodsand 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.schemato options (#16930) (overlookmotel) - 2f946cf linter/plugins: Error if
defaultOptionsis 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_OPTIONSfor 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
oxc crates_v0.103.0
Immutable
release. Only release title and notes can be modified.
💥 BREAKING CHANGES
- 320c09f ast, parser, linter, codegen, formatter: [BREAKING] Rename
CommentKind::BlocktoCommentKind::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.xandlet?.x(#16857) (Copilot) - d3208dc parser: Parse
let?.x(#16840) (Copilot) - 250feb3 transformer:
import.meta.foo.barmatches andreplaces 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)