unstale

npm / eslint-plugin-functional

eslint-plugin-functional

What changed in eslint-plugin-functional 4 to 10, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-23.

47 breaking1 deprecations15 new APIs and options6 behavior and defaults1 tooling5 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.3 on npm

eslint-plugin-functional 104 changes

Breaking changes 1

New APIs and options 1

  • Adds the ignoreTypePattern option to type-declaration-immutability.

    10.0.0release notes

Tooling 1

Fixes and other changes 1

  • When ignoreVoid is enabled, awaited void calls are ignored.

    10.0.1release notes

eslint-plugin-functional 93 changes

Breaking changes 1

  • The immutable-data rule now detects and reports map and set mutations.

    9.0.0release notes

Fixes and other changes 2

  • User immutability overrides now take precedence over defaults.

    9.0.5release notes

  • Fixed type errors affecting consumers of the package.

    9.0.4release notes

eslint-plugin-functional 81 changes

Breaking changes 1

  • Patterns matching PrivateIdentifiers now receive names prefixed with #.

    8.0.0release notes

eslint-plugin-functional 713 changes

Breaking changes 6

  • This option was replaced by allowToRejectPromises.

    7.0.0release notes

  • Replaces allowInAsyncFunctions as an option for no-throw-statements.

    7.0.0release notes

  • The plugin migrated to ESLint 9; projects need to use the new minimum supported ESLint version.

    7.0.0release notes

  • The minimum supported Node version is now 18.18.0.

    7.0.0release notes

  • The minimum supported TypeScript version is now 4.7.4.

    7.0.0release notes

  • Checking of types from TypeScript's lib is now more strict.

    7.0.0release notes

New APIs and options 5

  • Options can now be overridden based on where the function type is declared.

    7.0.0release notes

  • Options can now be overridden based on the root object's type.

    7.0.0release notes

  • Adds ignoreCodePattern as an option.

    7.0.0release notes

  • Adds ignoreIdentifierPattern as an option.

    7.0.0release notes

  • Options can now be overridden based on where the type is declared.

    7.0.0release notes

Behavior and default changes 2

  • The options in the recommended and lite configs changed.

    7.0.0release notes

  • The options in the recommended and lite configs changed.

    7.0.0release notes

eslint-plugin-functional 611 changes

Breaking changes 7

  • The assumeTypes option is removed.

    6.0.0release notes

  • Introduced as a replacement for the ignorePattern option.

    6.0.0release notes

  • Introduced as a replacement for the ignorePattern option.

    6.0.0release notes

  • The ignorePattern option is replaced by ignoreIdentifierPattern and ignoreCodePattern.

    6.0.0release notes

  • The fixer config no longer inherits as many options, so configs must be explicit about them.

    6.0.0release notes

  • The rule uses suggestions instead of a fixer by default.

    6.0.0release notes

  • The minimum supported TypeScript version increases to 4.3.5.

    6.0.0release notes

New APIs and options 3

  • functional-parameters adds an option to ignore getters and setters.

    6.0.0release notes

  • immutable-data adds the ignoreNonConstDeclarations option.

    6.0.0release notes

  • no-expression-statements adds an option to ignore self returning functions.

    6.0.0release notes

Fixes and other changes 1

  • Sanity checks are added to type immutability override settings.

    6.0.0release notes

eslint-plugin-functional 533 changes

Breaking changes 27

  • The allowFixer option is removed from assumeTypes.

    5.0.0release notes

  • The external-recommended ruleset is split into vanilla and TypeScript recommended rulesets.

    5.0.0release notes

  • The external-recommended ruleset is split into vanilla and TypeScript recommended rulesets.

    5.0.0release notes

  • The option is renamed from ignoreClass.

    5.0.0release notes

  • The rule is renamed from no-class.

    5.0.0release notes

  • The rule is renamed from no-conditional-statement.

    5.0.0release notes

  • The rule is renamed from no-expression-statement.

    5.0.0release notes

  • The option is renamed from allowLocalMutation.

    5.0.0release notes

  • The rule is renamed from no-loop-statement.

    5.0.0release notes

  • The rule is renamed from no-mixed-type and now supports Type Literals directly inside the Readonly type.

    5.0.0release notes

  • The ruleset is renamed from no-object-orientation.

    5.0.0release notes

  • The option is renamed from ignoreImplicit.

    5.0.0release notes

  • The rule is renamed from no-this-expression and removed from the recommended and lite rulesets.

    5.0.0release notes

  • The rule is renamed from no-throw-statement.

    5.0.0release notes

  • The rule is renamed from no-try-statement.

    5.0.0release notes

  • The minimum supported Node version is now 16.10.0.

    5.0.0release notes

  • A new rule enforces use of immutable types in runtime code type annotations.

    5.0.0release notes

  • The rule is renamed from no-method-signature and moved to the stylistic ruleset.

    5.0.0release notes

  • The option is renamed from ignoreIfReadonly and now defaults to false.

    5.0.0release notes

  • The rule is moved to the stylistic ruleset.

    5.0.0release notes

  • The deprecated rule is removed from all rulesets except off.

    5.0.0release notes

  • The rule now provides suggestions instead of a fixer.

    5.0.0release notes

  • A new rule enforces immutability of type aliases and interfaces.

    5.0.0release notes

  • The minimum supported TypeScript version is now 4.0.2.

    5.0.0release notes

  • This rule is removed from the list of recommended external rules.

    5.0.0release notes

  • Projects updating to this release should add this dependency.

    5.0.0release notes

  • Projects updating to this release should add this dependency.

    5.0.0release notes

Deprecations 1

  • This rule is deprecated in favor of prefer-immutable-types and type-declaration-immutability.

    5.0.0release notes

New APIs and options 4

  • The rule gains an option to ignore lambda function expressions.

    5.0.0release notes

  • Support for the TypeScript Readonly<T> type is added.

    5.0.0release notes

  • A new rule is introduced.

    5.0.0release notes

  • A new ruleset enforces the strictest configuration of the rules.

    5.0.0release notes

Behavior and default changes 1

eslint-plugin-functional 410 changes

Breaking changes 4

  • Implicit types are now checked by default.

    4.0.0release notes

  • The minimum required Node.js version is now ^12.22.0, ^14.17.0, or >=16.0.0.

    4.0.0release notes

  • The deprecated rule was removed.

    4.0.0release notes

  • The deprecated misspelled ruleset was removed in favor of the stylistic ruleset.

    4.0.0release notes

New APIs and options 2

Behavior and default changes 3

  • The recommended external rules were updated.

    4.0.0release notes

  • The rule is disabled by default in the recommended and lite configs.

    4.0.0release notes

  • Stylistic rules were added to the recommended ruleset.

    4.0.0release notes

Fixes and other changes 1

  • Rule metadata for recommended status now matches the recommended config.

    4.0.0release notes