github oxc-project/oxc apps_v1.31.0
oxlint v1.31.0 & oxfmt v0.16.0

10 hours ago

Table of Contents

  • Oxlint v1.31.0
  • Oxfmt v0.16.0

Oxlint v1.31.0

🚀 Features

  • 1651806 linter/plugins: Rule options (#16215) (Arsh)
  • 5da1a63 linter/plugins: Introduce RuleTester (#16206) (overlookmotel)
  • 41129ab linter/plugins: Implement languageOptions.parser (#16292) (overlookmotel)
  • 4b24825 linter: Implement no-restricted-types rule (#16276) (camc314)
  • 7150209 linter/plugins: Implement SourceCode#getNodeByRangeIndex (#16256) (overlookmotel)
  • 3226864 linter/plugins: Implement options merging (#16217) (overlookmotel)
  • cbb108a linter/plugins: Support default options (#16170) (overlookmotel)
  • 04a3a66 linter/plugins: Implement SourceCode#getTokenOrCommentAfter() (#16045) (Arsh)
  • 68b63d9 linter/plugins: Implement SourceCode#getTokenOrCommentBefore() (#16044) (Arsh)
  • 04d9454 linter/plugins: Implement SourceCode#getTokenByRangeStart() (#16043) (Arsh)
  • 7b8d578 linter/plugins: Implement SourceCode#getTokensBetween() (#16034) (Arsh)
  • 79c242f linter/plugins: Implement SourceCode#getLastTokensBetween() (#16033) (Arsh)
  • 1772078 linter/plugins: Implement SourceCode#getFirstTokenBetween() (#16032) (Arsh)
  • 21bb86d linter/plugins: Implement SourceCode#getFirstTokensBetween() (#16019) (Arsh)
  • 78f74b1 linter/plugins: Implement SourceCode#getLastTokenBetween() (#16008) (Arsh)
  • df0b948 linter/plugins: Implement SourceCode#getLastToken() (#16003) (Arsh)

🐛 Bug Fixes

  • decf2ad linter: Fix rule option docs for no-extra-boolean-cast, prefer-number-properties, and prefer-structured-clone (#16285) (connorshea)
  • cf249f5 linter/plugins: Fix message interpolation (#16300) (overlookmotel)
  • 9149a26 linter/plugins, napi/parser: Deep freeze visitor keys (#16293) (overlookmotel)
  • 71271ee linter: Fix typescript/no-empty-interface config option casing. (#16282) (connorshea)
  • 653fa6c oxlint/oxfmt/lsp: Tell client the real tool name & version (#16212) (Sysix)
  • 385e13e linter: Support both prefer-inline and preferInline for import/no-duplicates (#16275) (copilot-swe-agent)
  • efc08d3 linter: Fix config docs for no-return-assign and unicode-bom rules. (#16260) (connorshea)
  • dc96d3f linter: Correct docs to use string option for import/first rule. (#16264) (connorshea)
  • 15ce491 linter: Correct the default config options for the switch-exhaustiveness-check rule. (#16268) (connorshea)
  • 13f985c linter: Fix casing for unicorn/explicit-length-check config option. (#16269) (connorshea)
  • 0df1901 linter/plugins: Reset state after error during AST visitation (#16246) (overlookmotel)
  • 42e9dcc linter: Fix docs for consistent-type-specifier-style and consistent-type-definitions rules. (#16253) (connorshea)
  • 505ceb1 linter: Fix the radix rule docs to correctly render as a string-only config option (#16248) (connorshea)
  • 135cee6 oxlint/lsp: Run diagnostics after delayed worker initialization (#16244) (Sysix)
  • 78aa294 linter/plugins: Deep freeze options (#16218) (overlookmotel)
  • 123bffe linter/plugins: Handle zero-token files in SourceCode#getLastToken() (#16184) (Arsh)
  • 55fcfba linter: Add considerDefaultExhaustiveForUnions option to switch-exhaustiveness-check (#16204) (camc314)
  • 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)
  • 75249e0 linter/plugins: Handle non-UTF8 file paths (#16157) (overlookmotel)
  • 86fa667 linter/plugins: Improve type def for RuleMeta defaultOptions property (#16159) (overlookmotel)
  • d2b7dcb tsgolint: Improve lsp diagnostic when linting fails (#16115) (camc314)
  • 8810bd5 linter: Prevent conflicting fixes between prefer_number_properties and prefer_numeric_literals (#16113) (camc314)
  • 91eb3f2 ast/estree: Convert TSImportType argument field to Literal (#16109) (overlookmotel)
  • 2da2fc1 linter: Fix prefer-string-raw fixer producing invalid JS for non-ASCII strings (#16102) (camc314)
  • f5cb601 linter/plugins: Perform length checks before continuing loops (#16025) (Arsh)
  • e1c21ca linter/jsx-key: Implement missing options (#15731) (camc314)

⚡ Performance

  • 02bdf90 linter/plugins, napi/parser: Reuse arrays in visitor keys (#16294) (overlookmotel)
  • 714a91a linter/no-restricted-types: Skip running if config is empty (#16278) (camc314)
  • d3a34f8 linter/plugins: Optimize getTokens() and other methods (#16188) (Arsh)
  • c05db06 linter/plugins: Speed up initTokensWithComments (#16117) (overlookmotel)
  • 4846886 linter/plugins: Optimize merging of tokens and comments (#16071) (Arsh)
  • e232d35 linter/plugins: Recycle objects in token methods (#16068) (overlookmotel)

📚 Documentation

  • 55cf157 linter/plugins: Clarify comments (#16335) (overlookmotel)
  • 7613957 linter: Add config docs for typescript/ban-ts-comment rule (#16287) (connorshea)
  • e928732 linter/plugins: Fix JSDoc comment (#16295) (overlookmotel)
  • d4a1581 linter: Add a link to MDN for the no-proto rule. (#16213) (connorshea)
  • be36e36 linter/plugins: Fix JSDoc comment for loadPluginImpl (#16211) (overlookmotel)
  • 6d6e9c9 linter: Improve the docs for oxc/no-async-await rule. (#16181) (connorshea)
  • 0e1d38a linter/plugins: Clarify JSDoc comment for getTokensBetween (#16070) (overlookmotel)
  • 3ee22b2 linter/plugins: Fix JSDoc comments for tokens methods (#16063) (overlookmotel)
  • f257b5c linter/plugins: Clarify JSDoc comments for tokens methods (#16062) (overlookmotel)

Oxfmt v0.16.0

🚀 Features

  • 116e0d1 website: Auto generate oxfmt docs (#15985) (Boshen)
  • 862bdf7 oxfmt: Detect unsupported experimental options (take2) (#16088) (leaysgur)

🐛 Bug Fixes

  • b169e52 formatter: Correct printing of AsExpression and SatisfiesExpression (#16325) (leaysgur)
  • a07eec1 formatter: Incorrect indentation for class extends and implements (#16334) (Dunqing)
  • 5ad5435 formatter: Fix line comment after : inside ternary JSX (#16315) (leaysgur)
  • 75ac90c formatter: Comments in call arguments should be printed as-is (#16327) (Dunqing)
  • fd77568 formatter: Don't wrap parenthesis for yield expression if there is no leading comment (#16326) (Dunqing)
  • 8ccfb06 formatter: Should indent class extends and interface heritage when it is a member expression without type arguments (#16323) (Dunqing)
  • 0faa978 oxfmt: JsFormatEmbeddedCb types (#16324) (Brooooooklyn)
  • 2b8f982 formatter: JSX text wrapping incorrect (#16318) (Dunqing)
  • f3ffebe formatter: Should indent variable declarator if there is a trailing comment (#16243) (Dunqing)
  • 31d3186 formatter: Incorrect handling of directives with comments (#16235) (Dunqing)
  • ac8fcaf formatter: Add parens for new: private field expr (#16312) (leaysgur)
  • 653fa6c oxlint/oxfmt/lsp: Tell client the real tool name & version (#16212) (Sysix)
  • 380a0af formatter: Incorrect printing of class binding trailing comments (#16234) (Dunqing)
  • 0ca8154 formatter: Incorrect printing of trailing comments of callee when the call arguments are empty (#16232) (Dunqing)
  • ac3a92e formatter: Print comment in ternary jsx (#16224) (leaysgur)
  • e3a7388 formatter: Fix parens for static member chain (#16229) (leaysgur)
  • 55334c3 formatter: Incorrect printing of dangling comments in the if statement (#16228) (Dunqing)
  • 9096a63 formatter: Correct printing of trailing comments after the semicolon for class properties (#16225) (Dunqing)
  • 75fd568 formatter: Inconsistent union type output between two runs (#16222) (Dunqing)
  • cd70484 formatter: Should not add a hard space before function body (#16221) (Dunqing)
  • 9097167 formatter: Incorrect printing of union types with comments (#16205) (Dunqing)
  • 79b78b3 formatter: Template literal element should not be indented (#16189) (Dunqing)
  • 48d6ed2 formatter: Nested assignment pattern should not expand outer object pattern (#16160) (Dunqing)
  • 8f4137d formatter: Output is incorrect when using comments inside JSX which is the right hand-side of LogicalExpression (#16156) (Dunqing)
  • 85c3a10 formatter/sort_imports: Handle internal prefixes correctly (#16128) (leaysgur)
  • 38b7bc4 oxfmt: Make no-napi build work (#16134) (leaysgur)
  • 889d2e7 formatter: Handle poor layout for grouped call arguments (#16093) (Dunqing)
  • 14b0a6a oxfmt: Fix JS-ish file detection (#16092) (leaysgur)
  • 9706a1a oxfmt: Ignore unsupported options (#16085) (leaysgur)

Don't miss a new oxc release

NewReleases is sending notifications on new releases.