From ba5ada24c2a701960b693ea02e1c49f7f8c9c96c Mon Sep 17 00:00:00 2001 From: Elias Meire Date: Mon, 18 Aug 2025 13:48:46 +0200 Subject: [PATCH] build: Only enable no-argument-spread lint rule in node packages (#18378) --- packages/@n8n/eslint-config/src/plugin.ts | 1 - packages/@n8n/nodes-langchain/eslint.config.mjs | 10 ++++++---- packages/cli/src/webhooks/webhook-helpers.ts | 1 - .../src/components/CredentialEdit/CredentialEdit.vue | 2 +- packages/nodes-base/eslint.config.mjs | 5 ++++- packages/testing/playwright/utils/path-helper.ts | 1 - packages/workflow/src/node-helpers.ts | 1 - 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/@n8n/eslint-config/src/plugin.ts b/packages/@n8n/eslint-config/src/plugin.ts index 1da4a84c3f..da81092122 100644 --- a/packages/@n8n/eslint-config/src/plugin.ts +++ b/packages/@n8n/eslint-config/src/plugin.ts @@ -24,7 +24,6 @@ export const localRulesPlugin = { 'n8n-local-rules/no-interpolation-in-regular-string': 'error', 'n8n-local-rules/no-unused-param-in-catch-clause': 'error', 'n8n-local-rules/no-useless-catch-throw': 'error', - 'n8n-local-rules/no-argument-spread': 'warn', // TODO: mark error }, }, }, diff --git a/packages/@n8n/nodes-langchain/eslint.config.mjs b/packages/@n8n/nodes-langchain/eslint.config.mjs index e589ba31a4..983d4876af 100644 --- a/packages/@n8n/nodes-langchain/eslint.config.mjs +++ b/packages/@n8n/nodes-langchain/eslint.config.mjs @@ -9,17 +9,19 @@ export default defineConfig( // TODO: remove all the following rules eqeqeq: 'warn', 'id-denylist': 'warn', - 'import-x/extensions': 'warn', - 'prefer-spread': 'warn', 'no-case-declarations': 'warn', 'no-extra-boolean-cast': 'warn', 'no-empty': 'warn', 'no-prototype-builtins': 'warn', - 'import-x/order': 'warn', - '@typescript-eslint/no-unnecessary-type-assertion': 'warn', 'no-async-promise-executor': 'warn', 'no-useless-escape': 'warn', + 'import-x/order': 'warn', + 'import-x/extensions': 'warn', + + 'n8n-local-rules/no-argument-spread': 'warn', // TODO: mark error + + '@typescript-eslint/no-unnecessary-type-assertion': 'warn', '@typescript-eslint/naming-convention': ['error', { selector: 'memberLike', format: null }], '@typescript-eslint/no-explicit-any': 'warn', //812 warnings, better to fix in separate PR '@typescript-eslint/no-non-null-assertion': 'warn', //665 errors, better to fix in separate PR diff --git a/packages/cli/src/webhooks/webhook-helpers.ts b/packages/cli/src/webhooks/webhook-helpers.ts index ac73b14d26..41f50ca73e 100644 --- a/packages/cli/src/webhooks/webhook-helpers.ts +++ b/packages/cli/src/webhooks/webhook-helpers.ts @@ -2,7 +2,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable id-denylist */ -/* eslint-disable prefer-spread */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { Logger } from '@n8n/backend-common'; diff --git a/packages/frontend/editor-ui/src/components/CredentialEdit/CredentialEdit.vue b/packages/frontend/editor-ui/src/components/CredentialEdit/CredentialEdit.vue index b494883189..40386311d0 100644 --- a/packages/frontend/editor-ui/src/components/CredentialEdit/CredentialEdit.vue +++ b/packages/frontend/editor-ui/src/components/CredentialEdit/CredentialEdit.vue @@ -586,7 +586,7 @@ function getParentTypes(name: string): string[] { const types: string[] = []; for (const typeName of type.extends) { types.push(typeName); - types.push.apply(types, getParentTypes(typeName)); // eslint-disable-line prefer-spread + types.push.apply(types, getParentTypes(typeName)); } return types; diff --git a/packages/nodes-base/eslint.config.mjs b/packages/nodes-base/eslint.config.mjs index 14702bac38..6bef60da41 100644 --- a/packages/nodes-base/eslint.config.mjs +++ b/packages/nodes-base/eslint.config.mjs @@ -10,7 +10,6 @@ export default defineConfig( // TODO: remove all the following rules eqeqeq: 'warn', 'id-denylist': 'warn', - 'prefer-spread': 'warn', 'no-empty': 'warn', 'no-useless-escape': 'warn', 'no-prototype-builtins': 'warn', @@ -22,12 +21,16 @@ export default defineConfig( 'no-dupe-else-if': 'warn', 'no-extra-boolean-cast': 'warn', 'no-fallthrough': 'warn', + 'import-x/extensions': 'warn', 'import-x/no-default-export': 'warn', 'import-x/export': 'warn', 'import-x/order': 'warn', 'import-x/no-default-export': 'warn', 'import-x/no-extraneous-dependencies': 'warn', + + 'n8n-local-rules/no-argument-spread': 'warn', // TODO: mark error + '@typescript-eslint/ban-ts-comment': ['warn', { 'ts-ignore': true }], '@typescript-eslint/naming-convention': ['warn'], '@typescript-eslint/no-explicit-any': 'warn', //812 warnings, better to fix in separate PR diff --git a/packages/testing/playwright/utils/path-helper.ts b/packages/testing/playwright/utils/path-helper.ts index ad417c064c..2e5d4ef84f 100644 --- a/packages/testing/playwright/utils/path-helper.ts +++ b/packages/testing/playwright/utils/path-helper.ts @@ -44,6 +44,5 @@ const playwrightRoot = findProjectRoot('playwright.config.ts'); * @returns An absolute path to the file or directory. */ export function resolveFromRoot(...pathSegments: string[]): string { - // eslint-disable-next-line n8n-local-rules/no-argument-spread return path.join(playwrightRoot, ...pathSegments); } diff --git a/packages/workflow/src/node-helpers.ts b/packages/workflow/src/node-helpers.ts index 5bfb136075..721484c323 100644 --- a/packages/workflow/src/node-helpers.ts +++ b/packages/workflow/src/node-helpers.ts @@ -2,7 +2,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ -/* eslint-disable prefer-spread */ import get from 'lodash/get'; import isEqual from 'lodash/isEqual';