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 initeslint-plugin-functional 104 changes
Breaking changes 1
Node 18 is no longer supported.
New APIs and options 1
Adds the ignoreTypePattern option to type-declaration-immutability.
Tooling 1
Adds support for ESLint 10.
Fixes and other changes 1
When ignoreVoid is enabled, awaited void calls are ignored.
eslint-plugin-functional 93 changes
Breaking changes 1
The immutable-data rule now detects and reports map and set mutations.
Fixes and other changes 2
User immutability overrides now take precedence over defaults.
Fixed type errors affecting consumers of the package.
eslint-plugin-functional 81 changes
Breaking changes 1
Patterns matching PrivateIdentifiers now receive names prefixed with #.
eslint-plugin-functional 713 changes
Breaking changes 6
This option was replaced by allowToRejectPromises.
Replaces allowInAsyncFunctions as an option for no-throw-statements.
The plugin migrated to ESLint 9; projects need to use the new minimum supported ESLint version.
The minimum supported Node version is now 18.18.0.
The minimum supported TypeScript version is now 4.7.4.
Checking of types from TypeScript's lib is now more strict.
New APIs and options 5
Options can now be overridden based on where the function type is declared.
Options can now be overridden based on the root object's type.
Adds ignoreCodePattern as an option.
Adds ignoreIdentifierPattern as an option.
Options can now be overridden based on where the type is declared.
Behavior and default changes 2
The options in the recommended and lite configs changed.
The options in the recommended and lite configs changed.
eslint-plugin-functional 611 changes
Breaking changes 7
The assumeTypes option is removed.
Introduced as a replacement for the ignorePattern option.
Introduced as a replacement for the ignorePattern option.
The ignorePattern option is replaced by ignoreIdentifierPattern and ignoreCodePattern.
The fixer config no longer inherits as many options, so configs must be explicit about them.
The rule uses suggestions instead of a fixer by default.
The minimum supported TypeScript version increases to 4.3.5.
New APIs and options 3
functional-parameters adds an option to ignore getters and setters.
immutable-data adds the ignoreNonConstDeclarations option.
no-expression-statements adds an option to ignore self returning functions.
Fixes and other changes 1
Sanity checks are added to type immutability override settings.
eslint-plugin-functional 533 changes
Breaking changes 27
The allowFixer option is removed from assumeTypes.
The external-recommended ruleset is split into vanilla and TypeScript recommended rulesets.
The external-recommended ruleset is split into vanilla and TypeScript recommended rulesets.
The option is renamed from ignoreClass.
The rule is renamed from no-class.
The rule is renamed from no-conditional-statement.
The rule is renamed from no-expression-statement.
The option is renamed from allowLocalMutation.
The rule is renamed from no-loop-statement.
The rule is renamed from no-mixed-type and now supports Type Literals directly inside the Readonly type.
The ruleset is renamed from no-object-orientation.
The option is renamed from ignoreImplicit.
The rule is renamed from no-this-expression and removed from the recommended and lite rulesets.
The rule is renamed from no-throw-statement.
The rule is renamed from no-try-statement.
The minimum supported Node version is now 16.10.0.
A new rule enforces use of immutable types in runtime code type annotations.
The rule is renamed from no-method-signature and moved to the stylistic ruleset.
The option is renamed from ignoreIfReadonly and now defaults to false.
The rule is moved to the stylistic ruleset.
The deprecated rule is removed from all rulesets except off.
The rule now provides suggestions instead of a fixer.
A new rule enforces immutability of type aliases and interfaces.
The minimum supported TypeScript version is now 4.0.2.
This rule is removed from the list of recommended external rules.
Projects updating to this release should add this dependency.
Projects updating to this release should add this dependency.
Deprecations 1
This rule is deprecated in favor of prefer-immutable-types and type-declaration-immutability.
New APIs and options 4
The rule gains an option to ignore lambda function expressions.
Support for the TypeScript Readonly<T> type is added.
A new rule is introduced.
A new ruleset enforces the strictest configuration of the rules.
Behavior and default changes 1
The recommended ruleset is made less strict.
eslint-plugin-functional 410 changes
Breaking changes 4
Implicit types are now checked by default.
The minimum required Node.js version is now ^12.22.0, ^14.17.0, or >=16.0.0.
The deprecated rule was removed.
The deprecated misspelled ruleset was removed in favor of the stylistic ruleset.
New APIs and options 2
Stylistic rules were added to the lite ruleset.
An off preset was added.
Behavior and default changes 3
The recommended external rules were updated.
The rule is disabled by default in the recommended and lite configs.
Stylistic rules were added to the recommended ruleset.
Fixes and other changes 1
Rule metadata for recommended status now matches the recommended config.