Table of Contents
Oxlint v1.46.0
🐛 Bug Fixes
- 5a16f10 oxlint, oxfmt: Update
bindings.jsfiles (#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.jsfiles (#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-stylerule (#19186) (Mikhail Baev) - 80eba6f linter/max-params: Support
countThisoption (#19175) (camc314) - e19bc45 linter/no-new-func: Improve rule diagnostic with note and actionable help message (#19132) (Sean Gallen)
- e3dc5f6 linter/plugins:
RuleTestertest suggestions (#19104) (overlookmotel) - 6054249 linter/plugins: Add
recursiveoption toRuleTester(#19093) (overlookmotel) - 27c241b linter/plugins:
RuleTestertest fixes (#19091) (overlookmotel) - 7318275 linter/new-cap: Tighten diagnostic spans and add help text (#19131) (camchenry)
- ac2b16b linter: Improve
no-misleading-character-classdiagnostic spans (#19109) (Sysix) - 7be8613 linter: Move
no-misleading-chracter-classtocorrectness(#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
forEachcase (#18992) (camc314) - e2d28fe linter/plugins: Implement suggestions (#18963) (overlookmotel)
- a398152 linter: Promote the
eslint/no-iteratorrule 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/pluginsNPM package (#18824) (overlookmotel) - 5ee7b2f linter/vitest: Implements
prefer-expect-type-ofrule (#17957) (Said Atrahouch) - a7b360a linter/unicorn: Implement
unicorn/relative-url-stylerule (#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.forEachcalls (#19127) (camc314) - 825f148 linter/plugins:
RuleTesterconsider 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 allCharacterSet(#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-namesfor@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
popoverrelated 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
afterhook 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_dirto 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
Vecwhen compilingPossibleFixes(#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
RuleTesterconfig (#19156) (overlookmotel) - e7ec06a linter: Improve docs for
import/max-dependenciesrule. (#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-rolesrule. (#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_formatterin 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-tsfor 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
TemplateLiteralcontent (#18848) (leaysgur)