From c8d1c65e91cd824f0c34883a5bc6f5d2b8594c2a Mon Sep 17 00:00:00 2001 From: Vojtech Masek Date: Mon, 12 May 2025 16:30:24 +0200 Subject: [PATCH 1/2] Allow modifying Set and Map in immutable rule lint config --- docs/typescript.md | 80 ++++++++++++++++---------------- scripts/helpers/format-config.js | 5 +- src/lib/rule-options.js | 7 +++ src/lib/utils.js | 12 +++++ 4 files changed, 63 insertions(+), 41 deletions(-) diff --git a/docs/typescript.md b/docs/typescript.md index 82b4c4b..e7c6920 100644 --- a/docs/typescript.md +++ b/docs/typescript.md @@ -72,46 +72,46 @@ Config for strict **TypeScript** projects. ### 🚨 Errors (38) -| Plugin | Rule | Options | Autofix | Overrides | -| :--------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----: | :-------: | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [await-thenable](https://typescript-eslint.io/rules/await-thenable)
Disallow awaiting a value that is not a Thenable | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [consistent-type-assertions](https://typescript-eslint.io/rules/consistent-type-assertions)
Enforce consistent usage of type assertions |
assertionStyle: as, objectL...
{
  "assertionStyle": "as",
  "objectLiteralTypeAssertions": "never"
}
| πŸ”§, πŸ’‘ | πŸ§ͺ⚠️ | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-array-delete](https://typescript-eslint.io/rules/no-array-delete)
Disallow using the `delete` operator on array values | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-base-to-string](https://typescript-eslint.io/rules/no-base-to-string)
Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-deprecated](https://typescript-eslint.io/rules/no-deprecated)
Disallow using code marked as `@deprecated` | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-duplicate-type-constituents](https://typescript-eslint.io/rules/no-duplicate-type-constituents)
Disallow duplicate constituents of union or intersection types | | πŸ”§ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-dynamic-delete](https://typescript-eslint.io/rules/no-dynamic-delete)
Disallow using the `delete` operator on computed key expressions | | πŸ”§ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-extraneous-class](https://typescript-eslint.io/rules/no-extraneous-class)
Disallow classes used as namespaces | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-floating-promises](https://typescript-eslint.io/rules/no-floating-promises)
Require Promise-like statements to be handled appropriately | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-for-in-array](https://typescript-eslint.io/rules/no-for-in-array)
Disallow iterating over an array with a for-in loop | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-implied-eval](https://typescript-eslint.io/rules/no-implied-eval)
Disallow the use of `eval()`-like methods | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-invalid-void-type](https://typescript-eslint.io/rules/no-invalid-void-type)
Disallow `void` type outside of generic or return types | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-misused-promises](https://typescript-eslint.io/rules/no-misused-promises)
Disallow Promises in places not designed to handle them | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-misused-spread](https://typescript-eslint.io/rules/no-misused-spread)
Disallow using the spread operator when it might cause unexpected behavior | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-mixed-enums](https://typescript-eslint.io/rules/no-mixed-enums)
Disallow enums from having both number and string members | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-non-null-asserted-nullish-coalescing](https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing)
Disallow non-null assertions in the left operand of a nullish coalescing operator | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-non-null-assertion](https://typescript-eslint.io/rules/no-non-null-assertion)
Disallow non-null assertions using the `!` postfix operator | | πŸ’‘ | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-redundant-type-constituents](https://typescript-eslint.io/rules/no-redundant-type-constituents)
Disallow members of unions and intersections that do nothing or override type information | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unnecessary-type-assertion](https://typescript-eslint.io/rules/no-unnecessary-type-assertion)
Disallow type assertions that do not change the type of an expression | | πŸ”§ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unnecessary-type-parameters](https://typescript-eslint.io/rules/no-unnecessary-type-parameters)
Disallow type parameters that aren't used multiple times | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-argument](https://typescript-eslint.io/rules/no-unsafe-argument)
Disallow calling a function with a value with type `any` | | | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-assignment](https://typescript-eslint.io/rules/no-unsafe-assignment)
Disallow assigning a value with type `any` to variables and properties | | | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-call](https://typescript-eslint.io/rules/no-unsafe-call)
Disallow calling a value with type `any` | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-enum-comparison](https://typescript-eslint.io/rules/no-unsafe-enum-comparison)
Disallow comparing an enum value with a non-enum value | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-member-access](https://typescript-eslint.io/rules/no-unsafe-member-access)
Disallow member access on a value with type `any` | | | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-return](https://typescript-eslint.io/rules/no-unsafe-return)
Disallow returning a value with type `any` from a function | | | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-unary-minus](https://typescript-eslint.io/rules/no-unsafe-unary-minus)
Require unary negation to take a number | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-useless-constructor](https://typescript-eslint.io/rules/no-useless-constructor)
Disallow unnecessary constructors | | πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [non-nullable-type-assertion-style](https://typescript-eslint.io/rules/non-nullable-type-assertion-style)
Enforce non-null assertions over explicit type assertions | | πŸ”§ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [only-throw-error](https://typescript-eslint.io/rules/only-throw-error)
Disallow throwing non-`Error` values as exceptions | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [prefer-literal-enum-member](https://typescript-eslint.io/rules/prefer-literal-enum-member)
Require all enum members to be literal values | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [restrict-plus-operands](https://typescript-eslint.io/rules/restrict-plus-operands)
Require both operands of addition to be the same type and be `bigint`, `number`, or `string` | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [restrict-template-expressions](https://typescript-eslint.io/rules/restrict-template-expressions)
Enforce template literal expressions to be of `string` type |
allowBoolean: true, allowNu...
{
  "allowBoolean": true,
  "allowNumber": true
}
| | πŸ§ͺ🚫 | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [return-await](https://typescript-eslint.io/rules/return-await)
Enforce consistent awaiting of returned promises |
error-handling-correctness-...
"error-handling-correctness-only"
| πŸ”§, πŸ’‘ | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [unbound-method](https://typescript-eslint.io/rules/unbound-method)
Enforce unbound methods are called with their expected scope | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [unified-signatures](https://typescript-eslint.io/rules/unified-signatures)
Disallow two overloads that could be unified into one with a union or an optional/rest parameter | | | | -| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [use-unknown-in-catch-callback-variable](https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable)
Enforce typing arguments in Promise rejection callbacks as `unknown` | | πŸ”§, πŸ’‘ | | -| [![functional](./icons/icons8/lambda.png)](https://github.com/eslint-functional/eslint-plugin-functional#readme) | [immutable-data](https://github.com/eslint-functional/eslint-plugin-functional/blob/v9.0.1/docs/rules/immutable-data.md)
Enforce treating data as immutable. |
ignoreImmediateMutation: tr...
{
  "ignoreImmediateMutation": true,
  "ignoreClasses": true,
  "ignoreAccessorPattern": "module.exports"
}
| | πŸ§ͺ⚠️ | +| Plugin | Rule | Options | Autofix | Overrides | +| :--------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----: | :-------: | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [await-thenable](https://typescript-eslint.io/rules/await-thenable)
Disallow awaiting a value that is not a Thenable | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [consistent-type-assertions](https://typescript-eslint.io/rules/consistent-type-assertions)
Enforce consistent usage of type assertions |
assertionStyle: as, objectL...
{
  "assertionStyle": "as",
  "objectLiteralTypeAssertions": "never"
}
| πŸ”§, πŸ’‘ | πŸ§ͺ⚠️ | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-array-delete](https://typescript-eslint.io/rules/no-array-delete)
Disallow using the `delete` operator on array values | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-base-to-string](https://typescript-eslint.io/rules/no-base-to-string)
Require `.toString()` and `.toLocaleString()` to only be called on objects which provide useful information when stringified | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-deprecated](https://typescript-eslint.io/rules/no-deprecated)
Disallow using code marked as `@deprecated` | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-duplicate-type-constituents](https://typescript-eslint.io/rules/no-duplicate-type-constituents)
Disallow duplicate constituents of union or intersection types | | πŸ”§ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-dynamic-delete](https://typescript-eslint.io/rules/no-dynamic-delete)
Disallow using the `delete` operator on computed key expressions | | πŸ”§ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-extraneous-class](https://typescript-eslint.io/rules/no-extraneous-class)
Disallow classes used as namespaces | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-floating-promises](https://typescript-eslint.io/rules/no-floating-promises)
Require Promise-like statements to be handled appropriately | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-for-in-array](https://typescript-eslint.io/rules/no-for-in-array)
Disallow iterating over an array with a for-in loop | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-implied-eval](https://typescript-eslint.io/rules/no-implied-eval)
Disallow the use of `eval()`-like methods | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-invalid-void-type](https://typescript-eslint.io/rules/no-invalid-void-type)
Disallow `void` type outside of generic or return types | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-misused-promises](https://typescript-eslint.io/rules/no-misused-promises)
Disallow Promises in places not designed to handle them | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-misused-spread](https://typescript-eslint.io/rules/no-misused-spread)
Disallow using the spread operator when it might cause unexpected behavior | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-mixed-enums](https://typescript-eslint.io/rules/no-mixed-enums)
Disallow enums from having both number and string members | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-non-null-asserted-nullish-coalescing](https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing)
Disallow non-null assertions in the left operand of a nullish coalescing operator | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-non-null-assertion](https://typescript-eslint.io/rules/no-non-null-assertion)
Disallow non-null assertions using the `!` postfix operator | | πŸ’‘ | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-redundant-type-constituents](https://typescript-eslint.io/rules/no-redundant-type-constituents)
Disallow members of unions and intersections that do nothing or override type information | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unnecessary-type-assertion](https://typescript-eslint.io/rules/no-unnecessary-type-assertion)
Disallow type assertions that do not change the type of an expression | | πŸ”§ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unnecessary-type-parameters](https://typescript-eslint.io/rules/no-unnecessary-type-parameters)
Disallow type parameters that aren't used multiple times | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-argument](https://typescript-eslint.io/rules/no-unsafe-argument)
Disallow calling a function with a value with type `any` | | | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-assignment](https://typescript-eslint.io/rules/no-unsafe-assignment)
Disallow assigning a value with type `any` to variables and properties | | | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-call](https://typescript-eslint.io/rules/no-unsafe-call)
Disallow calling a value with type `any` | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-enum-comparison](https://typescript-eslint.io/rules/no-unsafe-enum-comparison)
Disallow comparing an enum value with a non-enum value | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-member-access](https://typescript-eslint.io/rules/no-unsafe-member-access)
Disallow member access on a value with type `any` | | | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-return](https://typescript-eslint.io/rules/no-unsafe-return)
Disallow returning a value with type `any` from a function | | | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-unsafe-unary-minus](https://typescript-eslint.io/rules/no-unsafe-unary-minus)
Require unary negation to take a number | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [no-useless-constructor](https://typescript-eslint.io/rules/no-useless-constructor)
Disallow unnecessary constructors | | πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [non-nullable-type-assertion-style](https://typescript-eslint.io/rules/non-nullable-type-assertion-style)
Enforce non-null assertions over explicit type assertions | | πŸ”§ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [only-throw-error](https://typescript-eslint.io/rules/only-throw-error)
Disallow throwing non-`Error` values as exceptions | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [prefer-literal-enum-member](https://typescript-eslint.io/rules/prefer-literal-enum-member)
Require all enum members to be literal values | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [restrict-plus-operands](https://typescript-eslint.io/rules/restrict-plus-operands)
Require both operands of addition to be the same type and be `bigint`, `number`, or `string` | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [restrict-template-expressions](https://typescript-eslint.io/rules/restrict-template-expressions)
Enforce template literal expressions to be of `string` type |
allowBoolean: true, allowNu...
{
  "allowBoolean": true,
  "allowNumber": true
}
| | πŸ§ͺ🚫 | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [return-await](https://typescript-eslint.io/rules/return-await)
Enforce consistent awaiting of returned promises |
error-handling-correctness-...
"error-handling-correctness-only"
| πŸ”§, πŸ’‘ | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [unbound-method](https://typescript-eslint.io/rules/unbound-method)
Enforce unbound methods are called with their expected scope | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [unified-signatures](https://typescript-eslint.io/rules/unified-signatures)
Disallow two overloads that could be unified into one with a union or an optional/rest parameter | | | | +| [![@typescript-eslint](./icons/material/typescript.png)](https://typescript-eslint.io/) | [use-unknown-in-catch-callback-variable](https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable)
Enforce typing arguments in Promise rejection callbacks as `unknown` | | πŸ”§, πŸ’‘ | | +| [![functional](./icons/icons8/lambda.png)](https://github.com/eslint-functional/eslint-plugin-functional#readme) | [immutable-data](https://github.com/eslint-functional/eslint-plugin-functional/blob/v9.0.1/docs/rules/immutable-data.md)
Enforce treating data as immutable. |
ignoreMapsAndSets: true, ig...
{
  "ignoreMapsAndSets": true,
  "ignoreImmediateMutation": true,
  "ignoreClasses": true,
  "ignoreAccessorPattern": "module.exports"
}
| | πŸ§ͺ⚠️ | ### ⚠️ Warnings (19) diff --git a/scripts/helpers/format-config.js b/scripts/helpers/format-config.js index 5022ae5..7887624 100644 --- a/scripts/helpers/format-config.js +++ b/scripts/helpers/format-config.js @@ -165,7 +165,10 @@ function rulesTable(rules, hideOverrides = false) { .sort((a, b) => { const { name: name1, plugin: plugin1 = '' } = parseRuleId(a.id); const { name: name2, plugin: plugin2 = '' } = parseRuleId(b.id); - return plugin1.localeCompare(plugin2) || name1.localeCompare(name2); + return ( + plugin1.localeCompare(plugin2, 'en') || + name1.localeCompare(name2, 'en') + ); }) .map(rule => [ formatRulePlugin(rule), diff --git a/src/lib/rule-options.js b/src/lib/rule-options.js index 55f0383..41845fc 100644 --- a/src/lib/rule-options.js +++ b/src/lib/rule-options.js @@ -1,5 +1,8 @@ // @ts-check +import functional from 'eslint-plugin-functional'; +import { isOptionSupported } from './utils.js'; + export const NAMING_CONVENTION_OPTIONS = [ { selector: [ @@ -83,6 +86,10 @@ export const NAMING_CONVENTION_OPTIONS_ANGULAR = [ ]; export const IMMUTABLE_DATA_OPTIONS = { + ...(isOptionSupported( + functional.rules['immutable-data'].meta.schema, + 'ignoreMapsAndSets', + ) && { ignoreMapsAndSets: true }), ignoreImmediateMutation: true, ignoreClasses: true, ignoreAccessorPattern: 'module.exports', diff --git a/src/lib/utils.js b/src/lib/utils.js index c297350..9b4386b 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -13,3 +13,15 @@ export function convertErrorsToWarnings(rules) { ]), ); } + +/** + * Checks if the rule supports a specific option by checking rule schema + * @param {object | object[]} ruleSchema rules schema that holds options + * @param option {string} rule option to check if supported + * @returns {boolean} + */ +export function isOptionSupported(ruleSchema, option) { + return (Array.isArray(ruleSchema) ? ruleSchema : [ruleSchema]).some( + schema => 'properties' in schema && option in schema.properties, + ); +} From eac66c36d559109861707de718c90f998004b104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vojtech=20Ma=C5=A1ek?= Date: Wed, 28 May 2025 16:07:04 +0200 Subject: [PATCH 2/2] Correct docs of option param MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MatΔ›j Chalk <34691111+matejchalk@users.noreply.github.com> --- src/lib/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/utils.js b/src/lib/utils.js index 9b4386b..a5059e1 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -17,7 +17,7 @@ export function convertErrorsToWarnings(rules) { /** * Checks if the rule supports a specific option by checking rule schema * @param {object | object[]} ruleSchema rules schema that holds options - * @param option {string} rule option to check if supported + * @param {string} option rule option to check if supported * @returns {boolean} */ export function isOptionSupported(ruleSchema, option) {