Skip to content

Releases: oxc-project/oxc

oxlint v0.9.1

29 Aug 05:38
53ff349
Compare
Choose a tag to compare

[0.9.1] - 2024-08-29

Features

  • 6633972 linter: Add fixer for no-empty (#5276) (camc314)
  • a58e448 linter/eslint: Add fixer to no-var (#5144) (camc314)
  • a6e9769 linter/jsx-a11y: Add label-has-associated-control (#5163) (Billy Levin)
  • c8e8532 linter/unicorn: Add fixer to throw-new-error (#5275) (camc314)
  • 7ccde4b linter/unicorn: Add fixer to prefer-date-now (#5147) (camc314)

Bug Fixes

  • fdef8ae linter: Jest/vitest rule compat (#4797) (cinchen)
  • 76e86f8 linter: Eslint-plugin-unicorn prefer-spread wrong linter suggestion on variables of type string (#5265) (Arian94)
  • b39544e linter/jest: Fixer for prefer-jest-mocked creates invalid LHS expressions (#5243) (camc314)
  • 9953fa5 linter/no-null: Incorrect fixer for NullLiteral within ReturnStatement (#5247) (Dunqing)
  • 318479e linter/no-unused-vars: Mark the class/function in the new expression as used (#5306) (magic-akari)

Refactor

  • fa1d460 linter: Clean up Fixer and Message (#5308) (DonIsaac)

oxlint v0.9.0

26 Aug 09:31
2a001a0
Compare
Choose a tag to compare

[0.9.0] - 2024-08-26

This release introduces no-unused-vars as a correctness rule and parsing regular expressions for syntax errors, both may produce false positives. Feel free to submit an issue.

  • 5946748 linter: [BREAKING] Parse and display syntax errors for regular expressions (#5214) (Boshen)

image

  • b894d3b linter: [BREAKING] Make no-unused-vars correctness (#5081) (DonIsaac)

Features

  • 1ce9630 linter/config: Implement FromIterator for LintPluginOptions (#5102) (DonIsaac)
  • 34bfaf6 linter/react: Add fixer to jsx-props-no-spread-multi (#5145) (camc314)
  • 982bd6e linter/unicorn: Add fixer to require-array-join-separator (#5152) (camc314)
  • a6704bd linter/unicorn: Add fixer to prefer-set-size (#5149) (camc314)
  • ac7edcc linter/unicorn: Add fixer to prefer-array-some (#5153) (camc314)
  • 1d01aa3 linter/unicorn: Add partial fixer for prefer-array-flat (#5143) (camc314)
  • 22d57f9 linter/unicorn: Add fixer to prefer-string-slice (#5150) (Cameron)
  • 2fe4415 linter/unicorn: Add fixer to no-redundant-roles (#5146) (Cameron)
  • d35c6f5 linter/unicorn: Add fixer to prefer-regexp-test (#5151) (Cameron)
  • 27db769 linter/unicorn: Add fixer to text-encoding-identifier-case (#5154) (Cameron)
  • f7958c4 linter/unicorn: Add prefer-structured-clone (#5095) (Jelle van der Waa)
  • 004ffa0 linter/vitest: Implement prefer-each (#5203) (dalaoshu)

Bug Fixes

  • aaaf26c linter: Error in fixer for prefer-to-have-length (#5197) (dalaoshu)
  • 1f5b6b6 linter: Bug in fixer for prefer-to-have-length (#5164) (dalaoshu)
  • 7eb052e linter: no-hex-escape fixer removing regex flags (#5137) (Cameron)
  • 76c66b4 linter/max-lines: Point span to end of file for disable directive to work (#5117) (Boshen)
  • 8ff6f2c linter/no-unused-vars: Panic on UsingDeclarations (#5206) (DonIsaac)
  • d29042e linter/no-unused-vars: Function expression in implicit arrow function return (#5155) (DonIsaac)
  • 36e4a28 linter/no-unused-vars: Panic in variable declarator usage checks (#5160) (DonIsaac)
  • ba62a71 linter/react: Fixed false positive with missing key inside React.Children.toArray() for fragments (#5133) (Earl Chase)
  • fd1031a linter/unicorn: Breaking fixer in case statements for no-null (#5176) (DonIsaac)
  • 7b86ed6 linter/unicorn: Handle type casts and parens in no-null (#5175) (Don Isaac)
  • b629e16 linter/unicorn: Improve diagnostic message for no-null (#5172) (DonIsaac)

Performance

  • ce454cf Use simdutf8 to validate UTF-8 when reading files (#5196) (dalaoshu)

Refactor

  • 543cad6 codegen: Remove some pub APIs (Boshen)
  • 0d3661a linter: Remove meaningless span0 (#5209) (dalaoshu)
  • 2a91ef1 linter: eslint/no_redeclare rule use run_on_symbol not run_once (#5201) (overlookmotel)
  • 33599b0 linter: Split options into multiple files (#5101) (DonIsaac)
  • 7ab6152 linter/unicorn: Clean up no-null (#5174) (DonIsaac)

Testing

  • a877e5a linter/no-unused-vars: Ensure type annotations on property accessors are considered used (#5183) (DonIsaac)
  • 7886618 linter/unicorn: Add fixer tests for no-null (#5173) (DonIsaac)

oxlint v0.8.0

23 Aug 03:49
8ef85a4
Compare
Choose a tag to compare

[0.8.0] - 2024-08-23

Features

  • 2292606 linter: Typescript-eslint/no-wrapper-object-types (#5022) (camc314)
  • a0effab linter: Support more flexible config.globals values (#4990) (Don Isaac)
  • cdbfcfb linter: Start import fixer for eslint/no-unused-vars (#4849) (DonIsaac)
  • 915cb4d linter: Add dangerous fixer for oxc only used in recursion (#4805) (camc314)
  • 3f28c77 linter/eslint: Improve no-dupe-keys (#4943) (DonIsaac)
  • e1582a5 linter/eslint: Improve no-duplicate-case rule (#4942) (DonIsaac)
  • f1e4611 linter/eslint-plugin-vitest: Implement no-conditional-in-test (#4971) (dalaoshu)
  • 14bf5d5 linter/eslint-plugin-vitest: Implement no-restricted-vi-methods (#4956) (dalaoshu)
  • ed9a1c4 linter/eslint-plugin-vitest: Implement require-local-test-context-for-concurrent-snapshots (#4951) (dalaoshu)
  • 7859f58 linter/eslint-plugin-vitest: Implement no-conditional-tests (#4955) (dalaoshu)
  • 841174f linter/no-unused-vars: Delete non-root arrows, skip await (#5083) (Don Isaac)

Bug Fixes

  • 86d0c0c linter: Change consistent-function-scoping to suspicious (#5010) (DonIsaac)
  • 7b99386 linter: Missing closing ticks in some example blocks (#4994) (DonIsaac)
  • 9c64b12 linter: Improve no-zero-fractions rule for member expressions and scientific notation (#4793) (Burlin)
  • c43945c linter/consistent-function-scoping: Allow functions passed as arguments (#5011) (Don Isaac)
  • 9354779 linter/no-unused-vars: Give argsIgnorePattern the same default behavior as varsIgnorePattern (#5018) (DonIsaac)
  • 5a55dcf linter/no-unused-vars: type specifier not deleted for type imports (#5029) (DonIsaac)
  • 4081293 linter/no-unused-vars: Panic in fixer when removing destructures (#4923) (Don Isaac)
  • ddf83ff linter/react: Fixed false positive with missing key inside React.Children.toArray() (#4945) (Earl Chase)
  • 508644a linter/tree-shaking: Correct the calculation of >>, << and >>> (#4932) (mysteryven)
  • e99836d linter/unicorn: Allow set spreading in no-useless-spread (#4944) (Don Isaac)
  • 5f8a7c2 oxlint: Rules in the configuration file are not being correctly … (#4949) (dalaoshu)

Documentation

  • e331ca0 linter: Improve documentation for several rules (#4997) (DonIsaac)
  • cd9f1cd linter/consistent-function-scoping: Improve rule documentation (#5015) (DonIsaac)

Refactor

  • eca6fdb linter: Move plugin options into separate struct (#5100) (DonIsaac)
  • 06f2d81 linter: Avoid unnecessary temp Vecs (#4963) (overlookmotel)
  • 4cb8c37 linter: Move default_true to utils (#4947) (Don Isaac)
  • ca70cc7 linter, mangler, parser, semantic, transformer, traverse, wasm: Rename various flag vars to flags (#5028) (overlookmotel)

Testing

  • c21d735 linter/no-unused-vars: Add ignored destructuring test cases (#4922) (Don Isaac)

oxlint v0.7.2

15 Aug 07:33
b3e1897
Compare
Choose a tag to compare

[0.7.2] - 2024-08-15

Features

  • 97e38cd linter: Add fixer for unicorn/prefer-optional-catch-binding (#4867) (heygsc)
  • 93ae1c7 linter: Eslint-plugin-react jsx-props-no-spread-multi (#4866) (keita hino)
  • 0a23610 linter: Add fixer for unicorn/prefer-array-flat-map (#4844) (heygsc)
  • 13c7b1b linter/jsx-a11y: Add fixer for aria-unsupported-elements (#4854) (DonIsaac)
  • a6195a6 linter/jsx-a11y: Add fixer for anchor-has-content (#4852) (DonIsaac)
  • 4d28d03 task/website: Support render subschemas.all_of (#4800) (mysteryven)

Bug Fixes

  • a08d7a7 linter/jsx-a11y: Reduce false negatives for html-has-lang (#4855) (DonIsaac)
  • a81ce3a linter/no-unused-vars: Do not delete function expressions when fixing (#4848) (DonIsaac)

Documentation

  • 955a4b4 oxlint: Improve cli doc regarding fix and -D all (Boshen)

Refactor

  • 56f033c linter: Improve diagnostics for several jsx-a11y rules (#4853) (DonIsaac)
  • c53c210 linter/no-unused-vars: Split fixer logic into multiple files (#4847) (DonIsaac)

oxlint v0.7.1

12 Aug 06:14
972492c
Compare
Choose a tag to compare

[0.7.1] - 2024-08-12

Features

  • 3d40528 linter: Add fix emoji to rules table and doc pages (#4715) (DonIsaac)
  • d2734f3 linter: Start fixer for no-unused-vars (#4718) (DonIsaac)
  • 070ae53 linter: Add fixer for unicorn prefer-string-replace-all (#4801) (camc314)
  • b3c3125 linter: Overhaul unicorn/no-useless-spread (#4791) (DonIsaac)
  • 5992b75 linter: Implement eslint-plugin-promise/no-return-in-finally, prefer-await-to-then rule (#4318) (Jelle van der Waa)
  • b259f47 linter: Add fixer for unicorn/no-length-as-slice-end (#4780) (heygsc)
  • abd83fa linter: Add fixer for jsx_ally/no_aria_hidden_on_focusable (#4772) (heygsc)
  • b20e335 linter: Add fixer for eslint/no-eq-null (#4758) (heygsc)
  • 2f6c3b9 linter: Add fixer for eslint/no-compare-neg-zero (#4748) (heygsc)
  • eaddc8f linter: Add fixer for eslint/func_names (#4714) (DonIsaac)
  • 80557a9 linter: Add fixer for eslint/for-direction (#4679) (heygsc)
  • c3c5766 linter/eslint-plugin-promise: Implement valid-params (#4598) (Jelle van der Waa)
  • c509a21 linter/eslint-plugin-vitest: Implement prefer-to-be-falsy (#4770) (dalaoshu)
  • 41f861f linter/eslint-plugin-vitest: Implement prefer-to-be-truthy (#4755) (dalaoshu)
  • cc922f4 vscode: Provide config's schema to oxlint config files (#4826) (Don Isaac)
  • f629514 website: Auto-generate rule docs pages (#4640) (DonIsaac)

Bug Fixes

  • b22ed45 linter: Improve prefer_namespace_keyword rule (#4751) (Burlin)
  • db68a6c linter: Fixer for eslint/for-direction (#4727) (heygsc)
  • 6273994 linter: Block in eslint/no_cond_assign (#4721) (heygsc)
  • b9d6aa5 linter: Fix false positives in no-confusing-non-null-assertion (#4665) (Renée)
  • cbf08d2 linter: Skip no-multi-str on jsx attributes (#4666) (heygsc)
  • a6f9f96 linter: No unused errors should be warnings (Boshen)
  • 7345bc9 linter/func-names: Handle ts accessibility when reporting missing names (#4713) (DonIsaac)

Performance

  • d191823 linter: Optmize allocations in jest fn parsing (#4787) (lucab)
  • e3abdfa linter: Reduce String allocations and clones (#4673) (DonIsaac)

Documentation

  • 4b7dfd6 linter: Correct docs for no-unused-vars (#4716) (Don Isaac)

Refactor

  • 096ac7b linter: Clean up jsx-a11y/anchor-is-valid (#4831) (DonIsaac)
  • 15a0fd4 linter: Use Option to reduce nested level in eslint/getter-return (#4814) (IWANABETHATGUY)
  • 63f274c linter: Simplify NoObjCalls resolution logic (#4765) (lucab)
  • 6708680 linter: Replace Windows-style line breaks with Unix-style in test fixture (#4768) (overlookmotel)
  • e285903 linter: Clean up eslint/func_names (#4710) (DonIsaac)

Testing

  • 8f2a566 linter: Ensure rule docs have valid syntax (#4644) (DonIsaac)
  • 4dd29db linter: Add fixer test for unicorn/no-zero-fractions (#4783) (heygsc)

oxlint v0.7.0

05 Aug 06:21
3ac02fd
Compare
Choose a tag to compare

[0.7.0] - 2024-08-05

Oxlint now contains 400 rules.

Features

  • 9df7b56 jsx-a11y/no-autofocus: Implement fixer support (#4171) (Jelle van der Waa)
  • b87bf70 linter: Add fix capabilties to existing lint rules (#4560) (DonIsaac)
  • ddd8b27 linter: Support conditional fix capabilities (#4559) (DonIsaac)
  • b952942 linter: Add eslint/no-unused-vars (⭐ attempt 3.2) (#4445) (DonIsaac)
  • 6543958 linter: Add auto-fix metadata to RuleMeta (#4557) (Don Isaac)
  • 85e8418 linter: Add react/jsx-curly-brace-presence (#3949) (Don Isaac)
  • 4c4da56 linter: Add typescript-eslint/prefer-keyword-namespce (#4438) (Aza Walker)
  • d8c2a83 linter: Eslint-plugin-vitest/no-import-node-test (#4440) (cinchen)
  • e3b0c40 linter: Eslint-plugin-vitest/no-identical-title (#4422) (cinchen)
  • c936782 linter: Eslint-plugin-vitest/no-conditional-expect (#4425) (cinchen)
  • 27fdd69 linter: Eslint-plugin-vitest/no-commented-out-tests (#4424) (cinchen)
  • 51f5025 linter: Add fixer for unicorn/prefer-string-starts-ends-with (#4378) (DonIsaac)
  • 3c0c709 linter: Add typescript-eslint/no-extraneous-class (#4357) (Jaden Rodriguez)
  • 7afa1f0 linter: Support suggestions and dangerous fixes (#4223) (DonIsaac)
  • acc5729 linter: Eslint-plugin-vitest/expect-expect (#4299) (cinchen)
  • 2213f93 linter: Eslint-plugin-vitest/no-alias-methods (#4301) (cinchen)
  • c296bc3 linter/eslint: Implement func-names (#4618) (Alexander S.)
  • e116ae0 linter/eslint: Implement fixer for prefer-numeric-literals (#4591) (Jelle van der Waa)
  • eaf834f linter/eslint: Implement prefer-numeric-literals (#4109) (Jelle van der Waa)
  • db2fd70 linter/eslint-plugin-promise: Implement no-webpack-loader-syntax (#4331) (Jelle van der Waa)
  • 5f1e070 linter/eslint-plugin-unicorn: Add fixer for prefer-code-point (#4353) (Jelle van der Waa)
  • ed49e16 linter/eslint-plugin-unicorn: Implement fixer for prefer-dom-node-append (#4306) (Jelle van der Waa)
  • e2b15ac linter/react: Implement react-jsx-boolean-value (#4613) (Jelle van der Waa)
  • 68efcd4 linter/react-perf: Handle new objects and arrays in prop assignment patterns (#4396) (DonIsaac)

Bug Fixes

  • 06aec77 linter: Invalid binary expression with overflow (#4647) (DonIsaac)
  • b2da22b linter: Invalid tags in rule docs (#4646) (DonIsaac)
  • 94440ad linter: Panic on invalid lang in a11y/lang. (#4630) (rzvxa)
  • e0b03f8 linter: Improve the boundary for eslint/for-direction (#4590) (heygsc)
  • 70b8cfa linter: Missing return in no-obj-calls recursion (#4594) (DonIsaac)
  • fe1356d linter: Change no-unused-vars to nursery (#4588) (DonIsaac)
  • 72337b1 linter: Change typescript-eslint/no-namespace to restriction (#4539) (Don Isaac)
  • 732f4e2 linter: Fix oxlint allocator cfg (#4527) (overlookmotel)
  • 289dc39 linter: Overflow in no-obj-calls (#4397) (DonIsaac)
  • a664715 linter/eslint: Fix invalid regexp in no_regex_spaces test (#4605) (Yuji Sugiura)
  • 74fa75a linter/eslint: Drop quotes around max-params lint warning (#4608) (Jelle van der Waa)
  • 9fcd9ae linter/eslint: Fix invalid regexp in no_control_regex test (#4544) (leaysgur)
  • ac08de8 linter/react_perf: Allow new objects, array, fns, etc in top scope (#4395) (DonIsaac)
  • 0fba738 npm: SyntaxError caused by optional chaining in low version node (#4650) (heygsc)
  • 73d2558 oxlint: Fix oxlint failed to build due to missing feature (Boshen)

Performance

  • 6ff200d linter: Change react rules and utils to use Cow and CompactStr instead of String (#4603) (DonIsaac)
  • f259df0 linter: Make img-redundant-alt only build a regex once (#4604) (DonIsaac)
  • 7585e16 linter: Remove allocations for string comparisons (#4570) (DonIsaac)
  • b60bdf1 linter: no_shadow_restricted_names only look up name in hashmap once (#4472) (overlookmotel)
  • 81384f5 linter: Avoid unnecessary work in nextjs:no_duplicate_head rule (#4465) (overlookmotel)
  • f7da22d linter: Disable lint rules by file type (#4380) (DonIsaac)

oxlint v0.6.1

18 Jul 14:53
697c0ef
Compare
Choose a tag to compare

[0.6.1] - 2024-07-17

Features

  • 1f8968a linter: Add eslint-plugin-promise rules: avoid-new, no-new-statics, params-names (#4293) (Jelle van der Waa)
  • a4dc56c linter: Add fixer for unicorn/no_useless_promise_resolve_reject (#4244) (Burlin)
  • 6fb808f linter: Add typescript-eslint/no-confusing-non-null-assertion (#4224) (Jaden Rodriguez)
  • 126b66c linter: Support eslint-plugin-vitest/valid-describe-callback (#4185) (cinchen)
  • 05b9a73 linter: Support eslint-plugin-vitest/valid-expect (#4183) (cinchen)
  • 3e56b2b linter: Support eslint-plugin-vitest/no-test-prefixes (#4182) (cinchen)
  • 3016f03 linter: Let fixer functions return a None fix (#4210) (DonIsaac)
  • bbe6137 linter: Implement unicorn/no-useless-undefined (#4079) (Burlin)

Bug Fixes

  • 9df60da linter: Correct find first non whitespace logic in @typescript-eslint/consistent-type-imports (#4198) (mysteryven)
  • 67240dc linter: Not ignore adjacent spans when fixing (#4217) (mysteryven)
  • dd07a54 linter: Global variables should always check the builtin variables (#4209) (Jelle van der Waa)

Performance

Refactor

  • b5a8f3c linter: Use get_first_parameter_name from unicorn utils (#4255) (Jelle van der Waa)
  • 7089a3d linter: Split up fixer code into separate files (#4222) (DonIsaac)

oxlint v0.6.0

11 Jul 07:02
4f26e51
Compare
Choose a tag to compare

[0.6.0] - 2024-07-11

Features

  • fb549e1 linter: Add vitest/no-focused-tests rule (#4178) (mysteryven)
  • 6c49007 linter: Add fixer for @typescript-eslint/consistent-type-imports (#3984) (mysteryven)
  • 278c3e9 linter: Add fixer for jsx-a11y/aria-props (#4176) (DonIsaac)
  • 2188144 linter: Eslint-plugin-jest/prefer-hooks-in-order (#4052) (cinchen)
  • cc58614 linter: Better json schemas for allow/warn/deny (#4150) (DonIsaac)
  • c5b4be0 linter: Add fixer for prefer-node-protocol (#4129) (DonIsaac)
  • 7ec0c0b linter/eslint: Implement no-label-var (#4087) (Jelle van der Waa)

Bug Fixes

  • ed4c54c eslint/radix: Detect yield Number.parseInt variant (#4110) (Jelle van der Waa)
  • e9ad03b linter: Fixer for no-debugger creates incorrect code (#4184) (DonIsaac)
  • bd69571 linter: Fix top level return panic in eslint/array_callback_return (#4167) (Boshen)
  • c8f5664 linter: Fix panic with unicode in unicorn/prefer_dom_node_dataset (#4166) (Boshen)
  • f2b3273 linter: Fix fixer panic in typescript/consistent_indexed_object_style (#4165) (Boshen)
  • 2334515 linter: Panic in get_enclosing_function (#4121) (DonIsaac)
  • 1b91d40 linter: Incorrect fixer for no-unused-labels (#4123) (Don Isaac)
  • 1729249 linter: Incorrect fix in no-single-promise-in-promise-methods rule; (#4094) (DonIsaac)
  • cc7e893 linter/tree-shaking: Avoid recursive function stackoverflow (#4191) (mysteryven)
  • 28eeee0 parser: Fix asi error diagnostic pointing at invalid text causing crash (#4163) (Boshen)

Performance

  • ddfa343 diagnostic: Use Cow<'static, str> over String (#4175) (DonIsaac)

Refactor

  • 2687ebc react: Use find_binding helper for finding React binding (#4108) (Jelle van der Waa)

oxlint v0.5.3

07 Jul 11:53
0c7f3ee
Compare
Choose a tag to compare

[0.5.3] - 2024-07-07

Features

  • 1681b11 linter: Eslint-plugin-jest/consistent-test-it (#4053) (cinchen)
  • 6876490 linter: Add rule no-undefined (#4041) (jordan boyer)
  • bf04dee linter: Implement unicorn/no-negation-in-equality-check (#4034) (Nissim Chekroun)
  • aa45604 linter/eslint: Implement no-multi-str (#4038) (Jelle van der Waa)

Bug Fixes

  • 7b2dc3b linter: Fix panic in import/namespace (#4080) (Boshen)

oxlint v0.5.2

02 Jul 14:29
b66ad0b
Compare
Choose a tag to compare

[0.6.0] - 2024-07-02

Features

  • b257d53 linter: Support report @typescript-eslint/consistent-type-imports (#3895) (mysteryven)
  • 2114475 linter: Implement @typescript-eslint/no-dynamic-delete (#3971) (kaykdm)
  • 10a3c9a linter/eslint-plugin-react: Implement no-set-state (#3975) (Jelle van der Waa)

Bug Fixes

  • 432d6d9 linter: Find disabled directives using the message's Span. (#4010) (rzvxa)
  • dbbb6fc linter: Global variable check should always check builtin variables (#3973) (Boshen)