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

functional/functional-parameters Limit only to specific types #575

Closed
danielnixon opened this issue Mar 13, 2023 · 4 comments · Fixed by #803
Closed

functional/functional-parameters Limit only to specific types #575

danielnixon opened this issue Mar 13, 2023 · 4 comments · Fixed by #803
Labels
Accepted This issue or PR has been accepted. Priority: Low Nice addition, maybe... someday... Status: Released It's now live. Type: Feature New features or options.

Comments

@danielnixon
Copy link

Suggestion

When using functional/functional-parameters, we have ignorePrefixSelector but that can't tap into TypeScript type information.

There are a few places that I would love to whitelist in a way that requires type information. It would be great if we had that ability.

Here's one motivating example:

In https://github.com/gcanti/fp-ts, there are many cases where Lazy thunks are used to achieve functional purity.

One case is when lifting Promises (eager, not referentially transparent) into fp-ts TaskEithers (lazy, referentially transparent):

export declare const tryCatch: <E, A>(f: Lazy<Promise<A>>, onRejected: (reason: unknown) => E) => TaskEither<E, A>

When calling that, you are frequently taking some existing code that returns a Promise and doing this to it:

TE.tryCatch(() => existingCodeThatReturnsPromise);

That lazy thunk (() => ...) unfortunately triggers functional/functional-parameters, even though in this case we're writing code that in spirit is extremely functional.

Luckily, fp-ts defines Lazy like so:

export interface Lazy<A> {
  (): A
}

It could have defined it like export type Lazy<A> = () => A;, but for our purposes here we're lucky they made it a named interface.

If we could tap into the type information, we'd know that the contextual type of () => existingCodeThatReturnsPromise is actually Lazy<...> due to it being passed to TE.tryCatch (first param type being: f: Lazy<Promise<A>>). That would allow us to whitelist cases like this.

Note that fp-ts also defines a type IO<A> that is structurally the same as Lazy<A> but has different semantics: IO<A> is assumed to be impure. We would not want to whitelist IOs.

@danielnixon danielnixon added Status: Triage This issue needs to be triaged. Type: Idea Marks an idea, which might be accepted and implemented. labels Mar 13, 2023
@danielnixon
Copy link
Author

Very related: RebeccaStevens/is-immutable-type#47 (comment)

@RebeccaStevens RebeccaStevens added Status: Blocked Progress on this issue is currently not possible. Type: Feature New features or options. and removed Type: Idea Marks an idea, which might be accepted and implemented. Status: Triage This issue needs to be triaged. labels Mar 18, 2023
@RebeccaStevens RebeccaStevens changed the title Feature Request: ignorePrefixSelector with type information functional/functional-parameters Limit only to specific types Mar 18, 2023
@RebeccaStevens
Copy link
Collaborator

What sort of change would you like to see for this? A new option? How do you think it should work?

Note: we already have ignoreLambdaExpression, a sub-option of enforceParameterCount.

@danielnixon
Copy link
Author

Thanks for asking @RebeccaStevens. I'm picturing an ability to override the rule using something like https://github.com/RebeccaStevens/is-immutable-type#overrides, so something like this:

[{ type: { from: "fp-ts", name: "Lazy" }}]

That would be the most 'surgical' override. It would allow ESLint to continue to flag lambdas in the general case (no need for ignoreLambdaExpression) while permitting us to use them whenever they're used to achieve laziness with fp-ts, such as via

TE.tryCatch(() => existingCodeThatReturnsPromise);

I understand if you think this is more trouble than its worth and your recommendation is to just use ignoreLambdaExpression.

@RebeccaStevens RebeccaStevens added Priority: Low Nice addition, maybe... someday... and removed Status: Blocked Progress on this issue is currently not possible. labels Jul 17, 2023
@RebeccaStevens RebeccaStevens added the Accepted This issue or PR has been accepted. label Mar 25, 2024
RebeccaStevens added a commit that referenced this issue Apr 14, 2024
RebeccaStevens added a commit that referenced this issue Apr 14, 2024
RebeccaStevens added a commit that referenced this issue Apr 15, 2024
RebeccaStevens added a commit that referenced this issue Apr 15, 2024
RebeccaStevens added a commit that referenced this issue Apr 16, 2024
RebeccaStevens added a commit that referenced this issue Apr 17, 2024
RebeccaStevens added a commit that referenced this issue Apr 22, 2024
RebeccaStevens added a commit that referenced this issue Apr 22, 2024
RebeccaStevens added a commit that referenced this issue Apr 22, 2024
RebeccaStevens added a commit that referenced this issue Apr 30, 2024
RebeccaStevens added a commit that referenced this issue May 6, 2024
RebeccaStevens added a commit that referenced this issue May 6, 2024
RebeccaStevens added a commit that referenced this issue Aug 2, 2024
RebeccaStevens added a commit that referenced this issue Aug 2, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 3, 2024
RebeccaStevens added a commit that referenced this issue Aug 5, 2024
RebeccaStevens added a commit that referenced this issue Aug 5, 2024
RebeccaStevens added a commit that referenced this issue Aug 5, 2024
github-actions bot pushed a commit that referenced this issue Aug 5, 2024
# [7.0.0](v6.6.3...v7.0.0) (2024-08-05)

### Bug Fixes

* checking of types from ts's lib are now more strict ([#862](#862)) ([39beb25](39beb25))

### Features

* eslint 9 migration ([#809](#809)) ([de4e3ea](de4e3ea))
* **functional-parameters:** allow overriding options based on where the function type is declared ([#803](#803)) ([21396d5](21396d5)), closes [#575](#575)
* **functional-parameters:** change options in recommended and lite configs ([#811](#811)) ([b3cb8d9](b3cb8d9))
* **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](#826)) ([c04e425](c04e425))
* **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](#863)) ([18aede1](18aede1)), closes [#851](#851)
* **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](#839)) ([c2c589c](c2c589c)), closes [#838](#838)
* **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](#804)) ([86fa76a](86fa76a)), closes [#800](#800)
* **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](#810)) ([defd713](defd713))

### BREAKING CHANGES

* **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` (#839)
Copy link

github-actions bot commented Aug 5, 2024

🎉 This issue has been resolved in version 7.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@github-actions github-actions bot added the Status: Released It's now live. label Aug 5, 2024
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 22, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 22, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 22, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 22, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 22, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 23, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 23, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 23, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Aug 23, 2024
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Sep 16, 2024
##### [v7.0.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#702-2024-08-26)

##### Bug Fixes

-   **no-expression-statements:** ignore `Promise<void>` when `ignoreVoid` is set ([#866](eslint-functional/eslint-plugin-functional#866)) ([2e1a992](eslint-functional/eslint-plugin-functional@2e1a992))
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Sep 17, 2024
##### [v7.0.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#702-2024-08-26)

##### Bug Fixes

-   **no-expression-statements:** ignore `Promise<void>` when `ignoreVoid` is set ([#866](eslint-functional/eslint-plugin-functional#866)) ([2e1a992](eslint-functional/eslint-plugin-functional@2e1a992))
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Sep 17, 2024
##### [v7.0.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#702-2024-08-26)

##### Bug Fixes

-   **no-expression-statements:** ignore `Promise<void>` when `ignoreVoid` is set ([#866](eslint-functional/eslint-plugin-functional#866)) ([2e1a992](eslint-functional/eslint-plugin-functional@2e1a992))
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
renovate bot added a commit to mmkal/eslint-plugin-mmkal that referenced this issue Sep 17, 2024
##### [v7.0.2](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#702-2024-08-26)

##### Bug Fixes

-   **no-expression-statements:** ignore `Promise<void>` when `ignoreVoid` is set ([#866](eslint-functional/eslint-plugin-functional#866)) ([2e1a992](eslint-functional/eslint-plugin-functional@2e1a992))
##### [v7.0.1](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#701-2024-08-07)

##### Bug Fixes

-   don't throw when typescript can't be resolved ([afb05bd](eslint-functional/eslint-plugin-functional@afb05bd))
##### [v7.0.0](https://github.com/eslint-functional/eslint-plugin-functional/blob/HEAD/CHANGELOG.md#700-2024-08-05)

##### Bug Fixes

-   checking of types from ts's lib are now more strict ([#862](eslint-functional/eslint-plugin-functional#862)) ([39beb25](eslint-functional/eslint-plugin-functional@39beb25))

##### Features

-   eslint 9 migration ([#809](eslint-functional/eslint-plugin-functional#809)) ([de4e3ea](eslint-functional/eslint-plugin-functional@de4e3ea))
-   **functional-parameters:** allow overriding options based on where the function type is declared ([#803](eslint-functional/eslint-plugin-functional#803)) ([21396d5](eslint-functional/eslint-plugin-functional@21396d5)), closes [#575](eslint-functional/eslint-plugin-functional#575)
-   **functional-parameters:** change options in recommended and lite configs ([#811](eslint-functional/eslint-plugin-functional#811)) ([b3cb8d9](eslint-functional/eslint-plugin-functional@b3cb8d9))
-   **immutable-data:** allows for applying overrides to the options based on the root object's type ([#826](eslint-functional/eslint-plugin-functional#826)) ([c04e425](eslint-functional/eslint-plugin-functional@c04e425))
-   **no-classes:** add options ignoreIdentifierPattern and ignoreCodePattern ([#863](eslint-functional/eslint-plugin-functional#863)) ([18aede1](eslint-functional/eslint-plugin-functional@18aede1)), closes [#851](eslint-functional/eslint-plugin-functional#851)
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839)) ([c2c589c](eslint-functional/eslint-plugin-functional@c2c589c)), closes [#838](eslint-functional/eslint-plugin-functional#838)
-   **prefer-immutable-types:** allow overriding options based on where the type is declared ([#804](eslint-functional/eslint-plugin-functional#804)) ([86fa76a](eslint-functional/eslint-plugin-functional@86fa76a)), closes [#800](eslint-functional/eslint-plugin-functional#800)
-   **prefer-immutable-types:** change the options in recommeneded and lite configs ([#810](eslint-functional/eslint-plugin-functional#810)) ([defd713](eslint-functional/eslint-plugin-functional@defd713))

##### BREAKING CHANGES

-   The minimum supported Node version is now 18.18.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported TypeScript version is now 4.7.4 ([#809](eslint-functional/eslint-plugin-functional#809))
-   The minimum supported Eslint version is now 9.0.0 ([#809](eslint-functional/eslint-plugin-functional#809))
-   **no-throw-statements:** replace option `allowInAsyncFunctions` with `allowToRejectPromises` ([#839](eslint-functional/eslint-plugin-functional#839))

#### [6.6.3](eslint-functional/eslint-plugin-functional@v6.6.2...v6.6.3) (2024-07-11)

##### Bug Fixes

-   **immutable-data:** ignoreAccessorPattern can now handle NonNullExpressions and ChainExpressions ([#849](eslint-functional/eslint-plugin-functional#849)) ([f6ff69b](eslint-functional/eslint-plugin-functional@f6ff69b)), closes [#840](eslint-functional/eslint-plugin-functional#840)

#### [6.6.2](eslint-functional/eslint-plugin-functional@v6.6.1...v6.6.2) (2024-07-11)

##### Bug Fixes

-   **no-conditional-statements:** allow continue and break statements with labels to be considered "returning" ([#846](eslint-functional/eslint-plugin-functional#846)) ([969b77b](eslint-functional/eslint-plugin-functional@969b77b))
-   **no-expression-statements:** arrow functions cannot be self returning ([#847](eslint-functional/eslint-plugin-functional#847)) ([7217fa4](eslint-functional/eslint-plugin-functional@7217fa4))
-   **no-promise-reject:** new Promises and throw statements are now also checked ([#848](eslint-functional/eslint-plugin-functional#848)) ([fbe27ad](eslint-functional/eslint-plugin-functional@fbe27ad))

#### [6.6.1](eslint-functional/eslint-plugin-functional@v6.6.0...v6.6.1) (2024-07-06)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Accepted This issue or PR has been accepted. Priority: Low Nice addition, maybe... someday... Status: Released It's now live. Type: Feature New features or options.
Projects
None yet
2 participants