Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: [2298] prefer-spread: should not report on optional chaining #2304

Merged

Conversation

MichaelBlm
Copy link
Contributor

@MichaelBlm MichaelBlm commented Apr 1, 2024

Fixes #2298

@MichaelBlm MichaelBlm changed the title [2298] should not report on optional chaining [2298] prefer-spread: should not report on optional chaining Apr 1, 2024
@MichaelBlm MichaelBlm changed the title [2298] prefer-spread: should not report on optional chaining [2298] prefer-spread: should not report on optional chaining Apr 1, 2024
@MichaelBlm MichaelBlm changed the title [2298] prefer-spread: should not report on optional chaining fix: [2298] prefer-spread should not report on optional chaining Apr 1, 2024
@MichaelBlm MichaelBlm changed the title fix: [2298] prefer-spread should not report on optional chaining fix: [2298] prefer-spread: should not report on optional chaining Apr 1, 2024
@MichaelBlm MichaelBlm changed the title fix: [2298] prefer-spread: should not report on optional chaining fix: [2298] prefer-spread: should not report on optional chaining Apr 1, 2024
@MichaelBlm MichaelBlm force-pushed the prefer-spread-optional-chaining branch from b338beb to 7a2471e Compare April 1, 2024 23:16
@MichaelBlm MichaelBlm marked this pull request as draft April 3, 2024 02:38
@MichaelBlm MichaelBlm marked this pull request as ready for review April 3, 2024 02:48
@MichaelBlm
Copy link
Contributor Author

MichaelBlm commented Apr 3, 2024

@sindresorhus main branch fails npm run integration -- --group 3

@fisker
Copy link
Collaborator

fisker commented Apr 3, 2024

@sindresorhus main branch fails npm run integration -- --group 3

I'll fix that.

@@ -312,6 +312,8 @@ test.snapshot({
'buffer.slice()',
'file.slice()',
'class A {foo() {this.slice()}}',
'scopeManager?.scopes.slice()',
'(scopeManager?.scopes).slice()',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should report (scopeManager?.scopes).slice() since it's not an optional call.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it wasnt clear in the issue if the (scopeManager?.scopes).slice() was valid or invalid. Let me update the PR.

@MichaelBlm MichaelBlm force-pushed the prefer-spread-optional-chaining branch 6 times, most recently from 85947a0 to 0b9a6e0 Compare April 3, 2024 14:26
@MichaelBlm MichaelBlm force-pushed the prefer-spread-optional-chaining branch from 0b9a6e0 to 879bb36 Compare April 3, 2024 14:43
@sindresorhus sindresorhus merged commit df1ff1c into sindresorhus:main Apr 3, 2024
18 checks passed
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 22, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this pull request Aug 23, 2024
##### [v55.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v55.0.0)

##### New rules

-   [`no-length-as-slice-end`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-length-as-slice-end.md) ([#2400](sindresorhus/eslint-plugin-unicorn#2400))  [`3c33820`](sindresorhus/eslint-plugin-unicorn@3c33820)

##### Improvements

-   Add TypeScript types ([#2382](sindresorhus/eslint-plugin-unicorn#2382))  [`68e0f13`](sindresorhus/eslint-plugin-unicorn@68e0f13)

##### Fixes

-   `no-single-promise-in-promise-methods`: Remove broken autofix for `Promise.all()` ([#2386](sindresorhus/eslint-plugin-unicorn#2386))  [`8d28b6e`](sindresorhus/eslint-plugin-unicorn@8d28b6e)
-   `prefer-node-protocol`: Ignore Bun modules ([#2384](sindresorhus/eslint-plugin-unicorn#2384))  [`a45b24a`](sindresorhus/eslint-plugin-unicorn@a45b24a)
-   `no-negation-in-equality-check`: Ignore boolean type casting ([#2379](sindresorhus/eslint-plugin-unicorn#2379))  [`37e00dd`](sindresorhus/eslint-plugin-unicorn@37e00dd)
##### [v54.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v54.0.0)

##### New rules

-   [`no-negation-in-equality-check`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md) ([#2353](sindresorhus/eslint-plugin-unicorn#2353))  [`8957a03`](sindresorhus/eslint-plugin-unicorn@8957a03)

##### Breaking

-   `prefer-array-find`: Change [`checkFromLast`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md#checkfromlast) default value to `true` ([#2367](sindresorhus/eslint-plugin-unicorn#2367))  [`a449af9`](sindresorhus/eslint-plugin-unicorn@a449af9)

##### Improvements

-   Add name to flat configs ([#2377](sindresorhus/eslint-plugin-unicorn#2377))  [`ac8536e`](sindresorhus/eslint-plugin-unicorn@ac8536e)
-   `prefer-array-some`: Check `Array#{findIndex,findLastIndex}()` ([#2370](sindresorhus/eslint-plugin-unicorn#2370))  [`10568ab`](sindresorhus/eslint-plugin-unicorn@10568ab)
-   `prefer-includes`: Check `.lastIndexOf()` ([#2368](sindresorhus/eslint-plugin-unicorn#2368))  [`d812ad1`](sindresorhus/eslint-plugin-unicorn@d812ad1)
-   `prefer-string-raw`: Ignore strings in Enums ([#2354](sindresorhus/eslint-plugin-unicorn#2354))  [`175ea04`](sindresorhus/eslint-plugin-unicorn@175ea04)

##### Fixes

-   Fix edge cases when add `new` to calls ([#2352](sindresorhus/eslint-plugin-unicorn#2352))  [`d8f8161`](sindresorhus/eslint-plugin-unicorn@d8f8161)
##### [v53.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v53.0.0)

##### New rules

-   [`consistent-empty-array-spread`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md) ([#2349](sindresorhus/eslint-plugin-unicorn#2349))  [`8d7954c`](sindresorhus/eslint-plugin-unicorn@8d7954c)
-   [`prefer-string-raw`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-raw.md) ([#2339](sindresorhus/eslint-plugin-unicorn#2339))  [`4f1400a`](sindresorhus/eslint-plugin-unicorn@4f1400a)
-   [`no-invalid-fetch-options`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md) ([#2338](sindresorhus/eslint-plugin-unicorn#2338))  [`342aafb`](sindresorhus/eslint-plugin-unicorn@342aafb)
-   [`no-magic-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md) ([#2335](sindresorhus/eslint-plugin-unicorn#2335))  [`bc17428`](sindresorhus/eslint-plugin-unicorn@bc17428)
-   [`prefer-structured-clone`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-structured-clone.md) ([#2329](sindresorhus/eslint-plugin-unicorn#2329))  [`497519e`](sindresorhus/eslint-plugin-unicorn@497519e)

##### Breaking

-   Require Node.js 18.18 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)

##### Meta

-   You can now [sponsor @fisker](https://github.com/sponsors/fisker) for his work on this project ([#2348](sindresorhus/eslint-plugin-unicorn#2348))  [`b82542d`](sindresorhus/eslint-plugin-unicorn@b82542d)

##### Improvements

-   Support ESLint 9 ([#2250](sindresorhus/eslint-plugin-unicorn#2250))  [`598f57b`](sindresorhus/eslint-plugin-unicorn@598f57b)
-   `no-array-method-this-argument`: Check `Array.fromAsync()` ([#2330](sindresorhus/eslint-plugin-unicorn#2330))  [`99489b9`](sindresorhus/eslint-plugin-unicorn@99489b9)
-   `prefer-number-properties`: Add `checkNaN` option ([#2315](sindresorhus/eslint-plugin-unicorn#2315))  [`d30de50`](sindresorhus/eslint-plugin-unicorn@d30de50)
-   `template-indent`: Support member expression paths in `tags` and `functions` ([#2346](sindresorhus/eslint-plugin-unicorn#2346))  [`aabcf1d`](sindresorhus/eslint-plugin-unicorn@aabcf1d)
-   `prefer-number-properties`: Don't require by default for `Infinity`/`-Infinity` to be written as `Number.POSITIVE_INFINITY`/`Number.NEGATIVE_INFINITY` ([#2312](sindresorhus/eslint-plugin-unicorn#2312))  [`e0dfed2`](sindresorhus/eslint-plugin-unicorn@e0dfed2)
-   `escape-case`: Ignore `String.raw` ([#2342](sindresorhus/eslint-plugin-unicorn#2342))  [`45bd444`](sindresorhus/eslint-plugin-unicorn@45bd444)
-   `no-hex-escape`: Ignore `String.raw` ([#2343](sindresorhus/eslint-plugin-unicorn#2343))  [`cc02a7f`](sindresorhus/eslint-plugin-unicorn@cc02a7f)
-   `prefer-dom-node-dataset`: Ignore `await`ed `getAttribute` call ([#2334](sindresorhus/eslint-plugin-unicorn#2334))  [`45f23d5`](sindresorhus/eslint-plugin-unicorn@45f23d5)
-   `prevent-abbreviations`: Support non-ASCII filenames ([#2308](sindresorhus/eslint-plugin-unicorn#2308))  [`28762c8`](sindresorhus/eslint-plugin-unicorn@28762c8)
-   `throw-new-error`: Check all call expressions instead of just argument of `ThrowStatement` ([#2332](sindresorhus/eslint-plugin-unicorn#2332))  [`1626852`](sindresorhus/eslint-plugin-unicorn@1626852)
##### [v52.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v52.0.0)

##### New rules

-   [`no-single-promise-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md) ([#2258](sindresorhus/eslint-plugin-unicorn#2258))  [`8f0ee89`](sindresorhus/eslint-plugin-unicorn@8f0ee89)
-   [`no-await-in-promise-methods`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md) ([#2259](sindresorhus/eslint-plugin-unicorn#2259))  [`a3be554`](sindresorhus/eslint-plugin-unicorn@a3be554)
-   [`no-anonymous-default-export`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md) ([#2273](sindresorhus/eslint-plugin-unicorn#2273))  [`c035216`](sindresorhus/eslint-plugin-unicorn@c035216)

##### Improvements

-   `filename-case`: Add option for multiple file extensions ([#2186](sindresorhus/eslint-plugin-unicorn#2186))  [`4594020`](sindresorhus/eslint-plugin-unicorn@4594020)
-   `import-style`: Support `node:` protocol ([#2297](sindresorhus/eslint-plugin-unicorn#2297))  [`c28a086`](sindresorhus/eslint-plugin-unicorn@c28a086)
-   `prefer-array-find`: Check `array.filter().at(0)` ([#2284](sindresorhus/eslint-plugin-unicorn#2284))  [`e6074fe`](sindresorhus/eslint-plugin-unicorn@e6074fe)
-   `prefer-prototype-methods`: Check `Object.prototype` methods from `globalThis` ([#2286](sindresorhus/eslint-plugin-unicorn#2286))  [`1792d33`](sindresorhus/eslint-plugin-unicorn@1792d33)
-   `no-array-callback-reference`: Check logical expressions and check ternaries deeply ([#2289](sindresorhus/eslint-plugin-unicorn#2289))  [`231529a`](sindresorhus/eslint-plugin-unicorn@231529a)

##### Fixes

-   `prefer-spread`: Fix it to not report on optional chaining ([#2304](sindresorhus/eslint-plugin-unicorn#2304))  [`df1ff1c`](sindresorhus/eslint-plugin-unicorn@df1ff1c)
-   `no-anonymous-default-export`: Uppercase class name ([#2282](sindresorhus/eslint-plugin-unicorn#2282))  [`5ce4169`](sindresorhus/eslint-plugin-unicorn@5ce4169)
##### [v51.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.1)

-   `prefer-node-protocol`: Fix false positive on `bun:*` modules ([#2272](sindresorhus/eslint-plugin-unicorn#2272))  [`43fc638`](sindresorhus/eslint-plugin-unicorn@43fc638)
##### [v51.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v51.0.0)

##### Breaking

-   `consistent-destructuring`: Remove from `recommended` preset ([#2260](sindresorhus/eslint-plugin-unicorn#2260))  [`702d51b`](sindresorhus/eslint-plugin-unicorn@702d51b)

##### Improvements

-   `no-array-method-this-argument`: Check `Array.from()` ([#2262](sindresorhus/eslint-plugin-unicorn#2262))  [`797caee`](sindresorhus/eslint-plugin-unicorn@797caee)

##### Fixes

-   `no-thenable`: Fix crash on `{[Symbol.prototype]: 0}` ([#2248](sindresorhus/eslint-plugin-unicorn#2248))  [`3c7d7c0`](sindresorhus/eslint-plugin-unicorn@3c7d7c0)
-   `prefer-prototype-methods`: Fix argument of `isMethodCall` ([#2247](sindresorhus/eslint-plugin-unicorn#2247))  [`3b504fa`](sindresorhus/eslint-plugin-unicorn@3b504fa)
##### [v50.0.1](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.1)

##### Fixes

-   `no-unnecessary-polyfills`: Fix missing dependency error ([#2242](sindresorhus/eslint-plugin-unicorn#2242))  [`3df1606`](sindresorhus/eslint-plugin-unicorn@3df16068)
##### [v50.0.0](https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#1717](sindresorhus/eslint-plugin-unicorn#1717))  [`6788d86`](sindresorhus/eslint-plugin-unicorn@6788d86)

##### Improvements

-   Support ESLint's new config system ([#1886](sindresorhus/eslint-plugin-unicorn#1886))  [`65711f9`](sindresorhus/eslint-plugin-unicorn@65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#2232](sindresorhus/eslint-plugin-unicorn#2232))  [`9d7048c`](sindresorhus/eslint-plugin-unicorn@9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#2237](sindresorhus/eslint-plugin-unicorn#2237))  [`6708a30`](sindresorhus/eslint-plugin-unicorn@6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#2223](sindresorhus/eslint-plugin-unicorn#2223))  [`42881ba`](sindresorhus/eslint-plugin-unicorn@42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#2213](sindresorhus/eslint-plugin-unicorn#2213))  [`8f61f7c`](sindresorhus/eslint-plugin-unicorn@8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#2222](sindresorhus/eslint-plugin-unicorn#2222))  [`b95e75e`](sindresorhus/eslint-plugin-unicorn@b95e75e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

prefer-spread should not report on optional chaining
3 participants