Skip to content

oxlint v1.46.0 & oxfmt v0.31.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Feb 17:40
ffe9b2e

Table of Contents

Oxlint v1.46.0

🐛 Bug Fixes

  • 5a16f10 oxlint, oxfmt: Update bindings.js files (#19229) (overlookmotel)
  • 3ea8f08 jsdoc: Prevent outer JSDoc from applying to nested functions (#19219) (camc314)
  • 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)

Oxfmt v0.31.0

🐛 Bug Fixes

  • 5a16f10 oxlint, oxfmt: Update bindings.js files (#19229) (overlookmotel)
  • 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)

Oxlint v1.44.0

🚀 Features

  • aef2af5 linter/unicorn: Add fixer for unicorn/relative-url-style rule (#19186) (Mikhail Baev)
  • 80eba6f linter/max-params: Support countThis option (#19175) (camc314)
  • e19bc45 linter/no-new-func: Improve rule diagnostic with note and actionable help message (#19132) (Sean Gallen)
  • e3dc5f6 linter/plugins: RuleTester test suggestions (#19104) (overlookmotel)
  • 6054249 linter/plugins: Add recursive option to RuleTester (#19093) (overlookmotel)
  • 27c241b linter/plugins: RuleTester test fixes (#19091) (overlookmotel)
  • 7318275 linter/new-cap: Tighten diagnostic spans and add help text (#19131) (camchenry)
  • ac2b16b linter: Improve no-misleading-character-class diagnostic spans (#19109) (Sysix)
  • 7be8613 linter: Move no-misleading-chracter-class to correctness (#19006) (Sysix)
  • 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt (#19039) (Boshen)
  • ee2925b oxlint/lsp: Enable JS plugins (#18834) (overlookmotel)
  • 533013d linter/unicorn: Implement suggestion for unicorn/prefer-dom-node-dataset (#19051) (Mikhail Baev)
  • 384abae linter/oxc/no-async-endpoint-handlers: Improve diagnostic message (#19001) (camc314)
  • d35ece3 linter/array-callback-return: Improve diagnostic hints for some cases (#18993) (camc314)
  • dd0f754 linter/array-callback-return: Improve diagnostic message for forEach case (#18992) (camc314)
  • e2d28fe linter/plugins: Implement suggestions (#18963) (overlookmotel)
  • a398152 linter: Promote the eslint/no-iterator rule to correctness, which makes it a default rule (#18915) (connorshea)
  • bb1eb97 linter: Improve diagnostic message for circular configs (#18947) (camc314)
  • 3184f36 linter: Ban relative js plugin specifiers in js extends config (#18944) (camc314)
  • 749972f linter: Validate dynamic config extends shape (#18943) (camc314)
  • b270739 linter: Support extends in oxlint.config.ts (#18942) (camc314)
  • 6024ddf linter: Implement suggestion for unicorn/prefer-reflect-apply (#18932) (Mikhail Baev)
  • b06b3a9 linter: Implement typescript/consistent-type-assertions (#18869) (Bazyli Brzóska)
  • 9fd3bd6 linter/plugins: Add @oxlint/plugins NPM package (#18824) (overlookmotel)
  • 5ee7b2f linter/vitest: Implements prefer-expect-type-of rule (#17957) (Said Atrahouch)
  • a7b360a linter/unicorn: Implement unicorn/relative-url-style rule (#18857) (Mikhail Baev)
  • 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen)
  • b23395a linter: Enforce exporting an object with defineConfig (#18858) (camc314)

🐛 Bug Fixes

  • 3ea8f08 jsdoc: Prevent outer JSDoc from applying to nested functions (#19219) (camc314)
  • 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)
  • d07059c linter/plugins: Support legacy context.report(node, ...) calls (#19193) (camc314)
  • 7800fc5 linter/prefer-event-target: Ignore EventEmitter imported from packages (#19188) (camc314)
  • 03b2955 linter/typescript/ban-types: Mark rule as deprecated (#19179) (camc314)
  • a5b8766 oxlint/lsp: Disable rule for this line should not be preferred (#19083) (Sysix)
  • e08157e linter/jsx-filename-extension: Include filename in as-needed diagnostic (#19172) (camc314)
  • 1773acb oxlint: Re-generate envs (#19169) (camc314)
  • 51c3fc8 linter/no-array-for-each: Skip Effect.forEach calls (#19127) (camc314)
  • 825f148 linter/plugins: RuleTester consider adjacent fixes as overlapping in ESLint compat mode (#19094) (overlookmotel)
  • ecd2456 linter/plugins: Handle fix with -1 offsets in file with BOM (#19092) (overlookmotel)
  • 5969d26 linter/no-array-sort: Avoid false positives for effect Chunk.sort (#19125) (camc314)
  • de10f04 linter: no-misleading-character-class: do not skip reporting on first invalid sequence of the checking group (#19111) (Sysix)
  • 8c0ce78 linter: Scope no-misleading-character-class sequences to single character class (#19108) (copilot-swe-agent)
  • 879e3a0 linter: no-misleading-character-class: split sequences on all CharacterSet (#19107) (Sysix)
  • 2ad33cc oxlint/lsp: Search parent directories for root oxlint config (#19062) (copilot-swe-agent)
  • f969d5e linter/prefer-dom-node-dataset: Address some edge cases in the fixer (#19065) (camc314)
  • ed759d1 linter/plugins: Fix error messages for invalid suggestions (#19059) (overlookmotel)
  • 34851a7 linter/plugins: Error not panic if invalid fix range (#19058) (overlookmotel)
  • 4823b58 linter/plugins: Fix fixes in files with BOM (#19056) (overlookmotel)
  • 2ef405e linter/no-map-spread: Improve actionability of error message (#19007) (Artyom Alekseevich)
  • 56c086b parser: Add modifier ordering validation (TS1029) (#19024) (Boshen)
  • 6067a49 linter/jsdoc: False positive in check-tag-names for @ in email addresses and npm scopes (#19021) (Boshen)
  • 6d46ed9 linter/capitalized-comments: Ignore prettier and oxfmt directives (#19008) (Artyom Alekseevich)
  • a46c878 linter/react/no-array-index-key: Look for keys in expressions (#18997) (camc314)
  • 7d61704 linter/prefer-at: Skip autofix for arguments (#18991) (camc314)
  • 3ebae53 linter/preserve-caught-error: Skip traversing into nested try/catch stmts (#18990) (camc314)
  • e94d37e linter/react/no-unknown-property: Add missing popover related props (#18953) (Christoph Nakazawa)
  • 04b0d99 linter: Normalize relative paths with ./ prefix in overrides. (#18954) (connorshea)
  • 57917ee parser: Parse decorators on rest parameters (#18938) (Boshen)
  • 07742ea linter/prefer-as-const: Implement fixer for type annotation (#18899) (camc314)
  • d64bfdd linter/plugins: Ensure after hook always runs last in rule converted for ESLint (#18904) (overlookmotel)
  • ec39944 linter/jsx-a11y/no-distracting-elements: Support elements option (#18892) (camc314)
  • f609cb6 linter/prefer-expect-type-of: Handle computed elements in fixer correctly (#18890) (camc314)
  • ecf11e5 linter/dynamic-config: Set ExternalPlugin.config_dir to fix js plugins loading (#18854) (camc314)
  • 01b7838 linter/plugins: Do not destroy workspaces (#18833) (overlookmotel)
  • dc51d6b linter: Normalize paths slashes for snapshots on windows (#18825) (camc314)
  • dbfdc40 linter/bad-replace-all-args: Skip extracting flags from conditional expressions (#18844) (camc314)

⚡ Performance

  • ed8c054 oxc_str: Add precomputed hash to Ident for fast HashMap lookups (#19143) (Boshen)
  • 18f58bd oxlint/lsp: Transform unused disable directive directly to DiagnosticReport (#19112) (Sysix)
  • 4ce3772 linter: Remove pointless string cloning when combining suggestions (#19075) (overlookmotel)
  • c417bf5 linter: Avoid allocating Vec when compiling PossibleFixes (#19074) (overlookmotel)
  • adb2baa linter/plugins: Avoid allocation when rule provides single suggestion (#19071) (overlookmotel)
  • 2537924 semantic: Optimize scope resolution with fast paths and inlining (#19029) (Boshen)

📚 Documentation

  • fe4357a linter: Fix typo in oxc/erasing-op (#19205) (drylint)
  • 6e8ef38 linter/plugins: Correct and expand JSDoc comment for RuleTester config (#19156) (overlookmotel)
  • e7ec06a linter: Improve docs for import/max-dependencies rule. (#19119) (connorshea)
  • 367f730 linter/consistent-test-filename: Escape file names fixes #19114 (#19123) (camc314)
  • 8753a54 linter: Rewrite the docs for the jsx-a11y/no-redundant-roles rule. (#19117) (connorshea)
  • dd44b1a linter: Fix invalid directive in example code for import/no-nodejs-modules. (#19115) (connorshea)
  • 726e273 linter/plugins: Improve JSDoc comment for DiagnosticReport (#19103) (overlookmotel)
  • 9561e7f linter/plugins: Alter JS plugins example (#18900) (overlookmotel)
  • 501e3b6 linter: Regenerate config.generated.ts (#18897) (overlookmotel)
  • b425a0c linter: Document jsPlugins examples (#18671) (Cameron)
  • df2b7fa linter: Expand settings example with reference to custom plugins (#18670) (camc314)

Oxfmt v0.29.0

💥 BREAKING CHANGES

  • 856a01f formatter/sort_imports: [BREAKING] Replace prefix match with glob pattern in customGroups.elementNamePattern (#19066) (leaysgur)

🚀 Features

  • 91e67f3 oxfmt/lsp: Do not refer .gitignore (#19206) (leaysgur)
  • 23c0753 oxfmt: Better Tailwind CSS intergration (#19000) (Dunqing)
  • 87a920d ci: Add riscv64 and s390x napi targets for oxlint and oxfmt (#19039) (Boshen)
  • 8536dce oxfmt: Support glob for CLI paths (#18976) (leaysgur)
  • 6ee2d59 oxfmt: Use oxc_formatter in js-in-xxx part (#18373) (leaysgur)
  • 9788a96 oxlint,oxfmt: Add more native builds (#18853) (Boshen)

🐛 Bug Fixes

  • 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)
  • 119348b oxfmt: Resolve relative -> absolute path for other usages (#19207) (leaysgur)
  • 5f4cf30 oxfmt: Fix relative -> absolute path resolution with refactoring (#19202) (leaysgur)
  • dc335d1 oxfmt: Temporarily disable the override for js-in-xxx (not ready yet) (#19043) (leaysgur)
  • 5ea5bda oxfmt: Handle isSingleJsxExpressionStatementInMarkdown() check for js-in-md (#19042) (leaysgur)
  • 5243307 formatter: Preserve numeric separators in number literals (#19015) (Dunqing)
  • 9b205b3 formatter: Fallback to formatting when package.json sorting fails (#19097) (Boshen)
  • b79c065 formatter: Preserve comment between callee and optional chaining operator (#19020) (Dunqing)
  • 01d1be1 formatter: Remove unnecessary parentheses for single-member union types (#19018) (Dunqing)
  • f5c7e75 formatter: Preserve parentheses around await with private field access (#19014) (Dunqing)
  • 5a75785 formatter: Preserve parentheses around nested sequence expressions (#19013) (Dunqing)
  • f39c96c oxfmt: Do not override babel-ts for now (#19030) (leaysgur)
  • 0ef11bb formatter: Add space before type annotation with leading comment (#19012) (Dunqing)
  • cc232e1 formatter: Keep spread with callback on same line (#18999) (Dunqing)
  • ef5bfab oxfmt: Workaround Node.js ThreadsafeFunction cleanup race condition (#18980) (Boshen)
  • d53f5c4 formatter: Require string first arg in test calls (#18935) (Dunqing)
  • 57917ee parser: Parse decorators on rest parameters (#18938) (Boshen)
  • 2db8c05 formatter: Avoid breaking generic call assignments (#18933) (Dunqing)
  • 1e023e1 formatter: Preserve trailing comma in mts/cts arrow generics (#18928) (Dunqing)
  • 7c4e558 formatter/detect_code_removal: Do not count TemplateLiteral content (#18848) (leaysgur)

⚡ Performance

  • 467724f oxfmt: Collect glob paths in parallel (#19209) (leaysgur)
  • 61e0efa oxfmt: Use RwLock instead of Mutex for TSFN handles (#18888) (Boshen)