Skip to content

Releases: oxc-project/oxc

oxlint v0.15.13

04 Mar 02:05
a84f6c2
Compare
Choose a tag to compare

[0.15.13] - 2025-03-04

Features

  • 7bb0121 linter: Add react/no-namespace (#9404) (Mikhail Baev)
  • 0a7ca20 linter: Support allowable method diagnostic for eslint/no-console (#9454) (Boshen)
  • d99bc51 linter: Add import/no-absolute-path rule (#9415) (yefan)
  • 8c71590 linter: Add import/no-mutable-exports rule (#9434) (yefan)
  • b65f8a5 linter: Add promise/no-nesting (#9345) (Tom)
  • d38e6de linter: Add eslint/no-spaced-func (#9360) (Tom)
  • 25392de linter: Add eslint/operator-assignment rule (#9208) (yefan)
  • bf77167 linter: Add curly rule (#8123) (Yuichiro Yamashita)
  • e3b6eeb linter: Add unicorn/consistent-date-clone (#9346) (Amol Bhave)
  • 5ee2cab linter: Improve no_invalid_fetch_options (#9347) (Brooooooklyn)
  • 4ad328b linter: Add oxc/no-redundant-constructor-init (#9299) (Ben Jones)

Bug Fixes

  • c4624a6 linter: Fix panic in import/no-absolute-path (#9500) (camc314)
  • 4b0327b linter: False positive in eslint/curly (#9471) (Kevin Deng 三咲智子)
  • 8804555 linter: Skip no-absolute-path tests on windows (#9435) (Cameron)
  • 06fe76d linter: Rule no-restricted-imports use right span for exports statements (#9442) (Sysix)
  • 3da3565 linter: Rule unicorn/no-invalid-fetch-options (#9416) (Tom)
  • 85fbe8c linter: Rule eslint/radix look into globals config (#9407) (Sysix)
  • 1113e3b linter: Rule eslint/no-object-constructor look into globals config (#9406) (Sysix)
  • 0217ebb linter: Support more cases for no_redundant_constructor_init (#9364) (Ben Jones)

Documentation

  • 24850e7 linter: Add example of how configure rule (#9469) (Cédric DIRAND)
  • acb1e2c linter: Add end code tag on rule doc (#9470) (Cédric DIRAND)
  • d43b456 linter: Add full documentation to rule no-restricted-imports (#9440) (Sysix)

Refactor

  • ffec3f6 linter: Improve eslint/no-new (#9423) (Tom)
  • 7c27f10 linter: Move rule no-restricted-imports to category restriction (#9443) (Sysix)
  • 7e118a3 linter: Improve typescript/explicit-function-return-type (#9439) (Tom)
  • 5318cf2 linter: Improve eslint/no-spaced-func (#9419) (shulaoda)
  • 802f00e linter: Use the javascript-globals crate (#9412) (Boshen)
  • bff83c9 linter: Improve eslint/no-unsafe-negation (#9362) (dalaoshu)
  • 228bf99 linter: Improve unicorn/empty-brace-spaces (#9341) (dalaoshu)
  • 55d071b linter: Improve unicorn/consistent-existence-index-check (#9339) (dalaoshu)
  • 17acece linter: Improve eslint/no-template-curly-in-string (#9090) (dalaoshu)

oxlint v0.15.12

24 Feb 08:02
6764b8d
Compare
Choose a tag to compare

[0.15.12] - 2025-02-24

Features

  • 914dd46 linter: Add eslint/max-depth (#9173) (ikkz)
  • 0b08159 linter: Add eslint/max-lines-per-function (#9161) (ikkz)
  • cc8dd48 linter: Add unicorn/no-invalid-fetch-options rule (#9212) (Mikhail Baev)
  • af13b1b linter: Promote eslint/no-eval to correctness (#9231) (dalaoshu)
  • 542bbd7 linter: Support import-x plugin name (#9074) (Sysix)
  • d266c29 linter: Add eslint/max-nested-callbacks (#9172) (ikkz)
  • 86795d0 linter: Implement grouped-accessor-pairs (#9065) (yefan)
  • d70bad3 linter: Add eslint/no-unneeded-ternary rule (#9160) (Cédric DIRAND)
  • 4bd86e6 linter: Add fixer for unicorn/catch-error-name (#9165) (dalaoshu)

Bug Fixes

  • 94bd2d8 language_server: Fix clippy::significant_drop_in_scrutinee warning (#9234) (Boshen)
  • 69091c0 linter: Correct default for eslint/no-eval (#9312) (dalaoshu)
  • 3031845 linter: Add option "allowTypeImports" for rule "no-restricted-imports" (#7894) (Alexander S.)

Documentation

  • 6c0f006 linter: Improve the documentation of eslint/no-useless-concat (#9179) (Tom)
  • 3414824 oxc: Enable clippy::too_long_first_doc_paragraph (#9237) (Boshen)

Refactor

  • fb7df52 linter: Allow indirect eval by default for eslint/no-eval (#9302) (dalaoshu)
  • b6fc0f6 linter: Improve unicorn/consistent-function-scoping (#9163) (dalaoshu)

oxlint v0.15.11

16 Feb 01:36
7f5c5d2
Compare
Choose a tag to compare

[0.15.11] - 2025-02-16

Features

  • d93bf0e linter: Implement func-style rule (#8977) (yefan)
  • a870526 linter: Add vitest/no-standalone-expect rule (#8986) (Tyler Earls)
  • addaa8e linter: Support es2025 env (#8985) (Sysix)
  • 5d508a4 linter: Support env and globals in overrides configuration (#8915) (Sysix)
  • 41ad42a linter: Add init-declarations rule (#8909) (yefan)
  • 125d610 minifier: Fold String::charAt / String::charCodeAt more precisely (#9082) (sapphi-red)

Bug Fixes

  • 47c1649 linter: Output line/column for --format=stylish instead of offset + length (#9136) (Sysix)
  • b68e240 linter: Rule unicorn/new-for-builtins do not look into globals (#9146) (Sysix)
  • 490c77d linter: Rule no-constant-binary-expression do not look into globals (#9145) (Sysix)
  • b36734c linter: Rule promise/avoid-new do not look into globals (#9144) (Sysix)
  • 091a5c1 linter: Rule no-new-native-nonconstructor do not look into globals (#9143) (Sysix)
  • 1c1d2e6 linter: Rule symbol-description do not look into globals (#9142) (Sysix)
  • 6d15153 linter: Rule prefer-object-spreads do not look into globals (#9141) (Sysix)
  • 9214661 linter: Rule valid-typeof do not check for globals (#9140) (Sysix)
  • 29141d6 linter: Rule no-restricted-globals: do not check for globals entries (#9139) (Sysix)
  • 23d0d95 linter: Report no-console when the globals.console is off (#9138) (Sysix)
  • 157e1a1 linter: False positive in jest/no-conditional-expect (#9053) (dalaoshu)
  • 28b5990 linter: Rule no-restricted-imports: improve diagnostics (#8113) (Alexander S.)
  • b191390 linter: no-global-assign look into globals config (#8963) (Sysix)
  • 44d985b linter: Correct the is_reference_to_global_variable (#8920) (dalaoshu)

Documentation

  • 02cb45b linter: Add prettier-ignore where formatting ruins code (#8978) (camchenry)

Refactor

  • 9ca22f4 linter: Improve jsx-a11y/heading-has-content (#9089) (dalaoshu)

oxlint v0.15.10

06 Feb 06:58
6942d2d
Compare
Choose a tag to compare

[0.15.10] - 2025-02-06

Features

  • d6d80f7 linter: Add suggestion fixer for eslint/no-iterator (#8894) (dalaoshu)
  • 7e8568b linter: Junit reporter (#8756) (Tapan Prakash)
  • f4662a9 oxc_language_server: Implement oxc.fixAll workspace command (#8858) (Marek Vospel)

Bug Fixes

  • baf3e4e linter: Correctly replace rule severity with duplicate rule name configurations (#8840) (dalaoshu)

Performance

  • 8a4988d linter: Use parallel iterator directly instead of iter and parallel bridge (#8831) (Cam McHenry)

Refactor

  • bb9d763 linter: Remove usage of url crate (#8833) (camchenry)
  • 4fcf719 linter: Replace MIME guessing with extension check (#8832) (camchenry)

oxlint v0.15.9

01 Feb 14:19
0063318
Compare
Choose a tag to compare

[0.15.9] - 2025-02-01

Features

  • 1a41181 linter: Implement eslint/prefer-object-spread (#8216) (tbashiyy)
  • adb8ebd linter: Implement no-useless-call rule (#8789) (keita hino)
  • 3790933 linter: Add vitest/prefer-lowercase-title rule (#8152) (Tyler Earls)
  • e8e6917 linter: Unicorn/switch-cases-braces support options (#8704) (1zumii)

Bug Fixes

  • 8ce21d1 linter: Can't disable no-nested-ternary rule anymore (#8600) (dalaoshu)
  • e929f26 linter: Output LintCommandInfo for CliRunResult::LintNoFilesFound (#8714) (Sysix)
  • 4f30a17 linter: Unicorn/switch-case-braces mangles code when applying fix (#8758) (Tyler Earls)
  • 9cc9d5f linter: ignorePatterns does not work when files are provided as command arguments (#8590) (dalaoshu)
  • 1de6f85 linter: No-lone-blocks erroring on block statements containing comments (#8720) (Tyler Earls)
  • 77ef61a linter: Fix diagnostic spans for oxc/no-async-await (#8721) (camchenry)
  • f15bdce linter: Catch Promise in typescript/array-type rule (#8702) (Rintaro Itokawa)
  • 5041cb3 vscode: Fix commands by reverting commit 259a47b (#8819) (Alexander S.)

Performance

  • d318238 linter: Remove sorting of rules in cache (#8718) (camchenry)

Documentation

  • 57b7ca8 ast: Add documentation for all remaining JS AST methods (#8820) (Cam McHenry)

Refactor

  • c2fdfc4 linter: Correctly handle loose options for eslint/eqeqeq (#8798) (dalaoshu)
  • 0aeaedd linter: Support loose options for eslint/eqeqeq (#8790) (dalaoshu)
  • 194a5ff linter: Remove LintResult (#8712) (Sysix)
  • 4a2f2a9 linter: Move default all_rules output to trait (#8710) (Sysix)
  • 741fb40 linter: Move stdout outside LintRunner (#8694) (Sysix)
  • 10e5920 linter: Move finishing default diagnostic message to GraphicalReporter (#8683) (Sysix)
  • 9731c56 oxlint: Move output from CliRunResult::InvalidOption to outside and use more Enums for different invalid options (#8778) (Sysix)
  • fe45bee oxlint: Create different CliRunResult instead of passing ExitCode to it (#8777) (Sysix)
  • 2378fef oxlint: Move ConfigFileInit output outside CliRunResult, exit code 1 when it fails (#8776) (Sysix)
  • f4cecb5 oxlint: Remove unused CliRunResult::PathNotFound (#8775) (Sysix)

Testing

  • ad35e82 linter: Use snapshot testing instead of LintResult (#8711) (Sysix)
  • bf895eb linter: Add diagnostic format test snapshots (#8696) (Alexander S.)
  • 34d3d72 linter: Add snapshot tester for cli (#8695) (Sysix)
  • 0bf2bcf oxlint: Test two real rules with same name but from different plugins (#8821) (dalaoshu)
  • 2b83b71 oxlint: Improve disabling "no-nested-ternary" tests (#8814) (Alexander S.)
  • 45648e7 oxlint: Fix InvalidOptionTsConfig tests for windows (#8791) (Alexander S.)
  • 48bfed9 oxlint: Ignore windows path mismatch (Boshen)
  • 6f4a023 oxlint: Remove "--print-config" test (#8792) (Sysix)
  • 55c2025 oxlint: Add CliRunResult to snapshot (#8780) (Sysix)

oxlint v0.15.8

24 Jan 10:22
b977678
Compare
Choose a tag to compare

[0.15.8] - 2025-01-24

Features

  • 79ba9b5 linter: Added support to run in Node.JS legacy versions (#8648) (Luiz Felipe Weber)
  • dcaebe6 linter: Add "strict" option to promise/prefer-await-to-then rule (#8674) (Neil Fisher)
  • 4ae568e linter: Add DiagnosticResult to the Reporters for receiving a sub part result (#8666) (Alexander S.)
  • 8a0eb2a oxlint: Add stylish formatter (#8607) (Andrew Powell)

Bug Fixes

  • 40316af linter: Fix github endColumn output (#8647) (Alexander S.)
  • dc912fa linter: Added missing $schema property to default config (#8625) (Tapan Prakash)

Refactor

  • a3dc4c3 crates: Clean up snapshot files (#8680) (Boshen)
  • e66da9f isolated_declarations, linter, minifier, prettier, semantic, transformer: Remove unnecessary ref / ref mut syntax (#8643) (overlookmotel)
  • 23b49a6 linter: Use cow_to_ascii_lowercase instead cow_to_lowercase (#8678) (Boshen)
  • b8d9a51 span: Deal only in owned Atoms (#8641) (overlookmotel)
  • ac4f98e span: Derive Copy on Atom (#8596) (branchseer)
  • 259a47b vscode: Move commands and findBinary to separate files (#8605) (Alexander S.)

oxlint v0.15.7

19 Jan 01:16
66c8720
Compare
Choose a tag to compare

[0.15.7] - 2025-01-19

Features

  • 01ac773 linter: Support ignoreTypeOfTestName for jest/valid-title (#8589) (dalaoshu)
  • 538b24a linter: Format the configuration documentation correctly (#8583) (Tapan Prakash)
  • 7ab14cc linter: Add more Vitest compatible Jest rules (#8445) (Anson Heung)
  • d178360 linter: Implement eslint/prefer-promise-reject-errors (#8254) (tbashiyy)
  • 4ac2e99 oxlint: Implement --init cli option (#8453) (Tapan Prakash)

Bug Fixes

  • 855c839 codegen: Shorthand assignment target identifier consider mangled names (#8536) (Boshen)
  • c15af02 linter: False positive in eslint/no-lone-blocks (#8587) (dalaoshu)
  • 41f2070 linter: Rule no-restricted-imports support missing options (#8076) (Alexander S.)
  • 869bc73 linter: Enhance default_param_last rule to handle optional parameters (#8563) (Tapan Prakash)
  • c6260c2 linter: Support rest params for prefer_promise_reject_errors (#8468) (Yuichiro Yamashita)
  • 2be1e82 linter/no-unused-vars: False positives when variable and type have same name (#8465) (Dunqing)

Performance

  • 250bbd1 linter/react-exhaustive-deps: Use stack of AstTypes instead of AstKinds (#8522) (overlookmotel)

Refactor

  • 40f5165 linter: Improve eslint/no-lone-blocks (#8588) (dalaoshu)
  • b4c87e2 linter: Move DiagnosticsReporters to oxlint (#8454) (Alexander S.)
  • bf00f82 linter: Move rule prefer-each from vitest to jest + remapping (#8448) (Alexander S.)
  • 8dd0013 linter/consistent-function-scoping: Remove Visit::enter_node usage (#8538) (overlookmotel)
  • 30c0689 linter/no-map-spread: Remove Visit::enter_node usage (#8537) (overlookmotel)
  • b5ed58e span: All methods take owned Span (#8297) (overlookmotel)

Styling

  • 3789d2f linter/react-exhaustive-deps: Fix indentation (#8520) (overlookmotel)

oxlint v0.15.6

13 Jan 03:24
424c770
Compare
Choose a tag to compare

[0.15.6] - 2025-01-13

Features

  • 457aa31 linter: Implement no-lone-blocks rule (#8145) (Yuichiro Yamashita)

Refactor

  • aea9551 ast: Simplify get_identifier_reference of TSType and TSTypeName (#8273) (Dunqing)
  • 43ed3e1 linter: Add output formatter (#8436) (Alexander S.)
  • 4e05e66 linter: Remove glob for windows (#8390) (Alexander S.)
  • b19d809 linter: Split unicorn/prefer-spread and eslint/prefer-spread into own rules (#8329) (Alexander S.)
  • 3c534ae linter: Refactor LintBuilder to prep for nested configs (#8034) (camc314)
  • 2f9fab9 linter: Remove remapping for plugin name in diagnostics (#8223) (Alexander S.)

Testing

  • b6c1546 linter: Use plugin name instead of category for finding rule (#8353) (Alexander S.)

oxlint v0.15.5

02 Jan 11:09
d2d90b0
Compare
Choose a tag to compare

[0.15.5] - 2025-01-02

Features

  • 0e168b8 linter: Catch more cases in const-comparisons (#8215) (Cameron)
  • bde44a3 linter: Add statement_span to ModuleRecord/ImportEntry (#8195) (Alexander S.)
  • ccaa9f7 linter: Implement eslint/new-cap (#8146) (Alexander S.)

Bug Fixes

  • 2b14a6f linter: Fix ignorePattern config for windows (#8214) (Alexander S.)

Testing

  • cb709c9 linter: Fix some oxlint tests on windows (#8204) (Cameron)

oxlint v0.15.4

30 Dec 08:02
936623e
Compare
Choose a tag to compare

[0.15.4] - 2024-12-30

  • ed75e42 semantic: [BREAKING] Make SymbolTable fields pub(crate) instead of pub (#7999) (Boshen)

Features

  • 47cea9a linter: Implement eslint/no-extra-label (#8181) (Anson Heung)
  • ef76e28 linter: Implement eslint/no-multi-assign (#8158) (Anson Heung)
  • 384858b linter: Implement jsx-a11y/no-noninteractive-tabindex (#8167) (Tyler Earls)
  • afc21a6 linter: Implement eslint/vars-on-top (#8157) (Yuichiro Yamashita)
  • 65796c4 linter: Implement eslint/prefer-rest-params (#8155) (Yuichiro Yamashita)
  • 5234d96 linter: Implement eslint/no-nested-ternary (#8150) (Yuichiro Yamashita)
  • 1c5db72 linter: Implement eslint/no-labels (#8131) (Anson Heung)
  • 0b04288 linter: Move import/named to nursery (#8068) (Boshen)

Bug Fixes

  • 0794bee editor/vscode: Set minimum supported ver. to ^1.93.0 (#8182) (Pavel Smirnov)
  • f3050d4 linter: Exclude svelte files from no_unused_vars rule (#8170) (Yuichiro Yamashita)
  • faf7464 linter: Disable rule react/rules-of-hook by file extension (#8168) (Alexander S.)
  • 1171e00 linter: Disable react/rules-of-hooks for vue and svelte files (#8165) (Alexander S.)
  • 1b9a5ba linter: False positiver in private member expr in oxc/const-comparison (#8164) (camc314)
  • 6bd9ddb linter: False positive in typescript/ban-tslint-comment (#8094) (dalaoshu)
  • 10a1fd5 linter: Rule: no-restricted-imports support option patterns with group key (#8050) (Alexander S.)
  • b3f38ae linter: Rule no-restricted-imports: support option allowImportNames (#8002) (Alexander S.)
  • 340cc90 linter: Rule no-restricted-imports: fix option "importNames" (#7943) (Alexander S.)
  • ec2128e linter: Fix line calculation for eslint/max-lines in diagnostics (#7962) (Dmitry Zakharov)
  • 79af100 semantic: Reference flags not correctly resolved when after an export stmt (#8134) (camc314)

Performance

  • d8d2ec6 linter: Run rules which require typescript syntax only when source type is actually typescript (#8166) (Alexander S.)
  • 2736657 semantic: Allocate UnresolvedReferences in allocator (#8046) (Boshen)

Refactor

  • de8246b language_server: Move structs into own file (#8026) (Alexander S.)
  • 774babb linter: Read exported_bindings_from_star_export lazily (#8062) (Boshen)
  • 547c102 linter: Use RwLock<FxHashMap> instead of FxDashMap for module record data (#8061) (Boshen)
  • 952d7e4 linter: Rename flat.rs to config.rs (#8033) (camc314)
  • 50848ed linter: Simplify ConfigStore to prep for nested configs (#8032) (camc314)
  • b2a4a78 linter: Remove unused with_rules and set_rule methods (#8029) (camc314)
  • 6da0b21 oxlint: Remove unused git.rs (#7990) (Boshen)
  • 58e7777 oxlint: Remove extra if check in Walkdir (#7989) (Boshen)
  • 02f968d semantic: Change Bindings to a plain FxHashMap (#8019) (Boshen)