diff --git a/packages/@n8n/nodes-langchain/.eslintrc.js b/packages/@n8n/nodes-langchain/.eslintrc.js index 1016c4740b..93091bad23 100644 --- a/packages/@n8n/nodes-langchain/.eslintrc.js +++ b/packages/@n8n/nodes-langchain/.eslintrc.js @@ -32,7 +32,6 @@ module.exports = { '@typescript-eslint/prefer-nullish-coalescing': 'warn', '@typescript-eslint/no-base-to-string': 'warn', '@typescript-eslint/no-redundant-type-constituents': 'warn', - '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-unsafe-argument': 'warn', '@typescript-eslint/prefer-optional-chain': 'warn', '@typescript-eslint/restrict-plus-operands': 'warn', diff --git a/packages/@n8n/nodes-langchain/tsconfig.json b/packages/@n8n/nodes-langchain/tsconfig.json index f031a5ae97..8377c89500 100644 --- a/packages/@n8n/nodes-langchain/tsconfig.json +++ b/packages/@n8n/nodes-langchain/tsconfig.json @@ -10,7 +10,6 @@ "forceConsistentCasingInFileNames": true, "noImplicitAny": true, "noImplicitReturns": true, - "noUnusedLocals": true, "strictNullChecks": true, "preserveConstEnums": true, "esModuleInterop": true, diff --git a/packages/@n8n_io/eslint-config/base.js b/packages/@n8n_io/eslint-config/base.js index f5150ee61a..4cb51b0cbb 100644 --- a/packages/@n8n_io/eslint-config/base.js +++ b/packages/@n8n_io/eslint-config/base.js @@ -419,19 +419,9 @@ const config = (module.exports = { */ 'prefer-spread': 'error', - /** - * https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-unused-vars.md - */ + // These are tuned off since we use `noUnusedLocals` and `noUnusedParameters` now 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - process.env.CI_LINT_MASTER ? 'warn' : 'error', - { - argsIgnorePattern: '^_', - destructuredArrayIgnorePattern: '^_', - varsIgnorePattern: '^_', - ignoreRestSiblings: true, - }, - ], + '@typescript-eslint/no-unused-vars': 'off', /** * https://www.typescriptlang.org/docs/handbook/enums.html#const-enums @@ -471,12 +461,6 @@ const config = (module.exports = { }, overrides: [ - { - files: ['**/*.d.ts'], - rules: { - '@typescript-eslint/no-unused-vars': 'off', - }, - }, { files: ['test/**/*.ts', '**/__tests__/*.ts'], rules: { @@ -499,7 +483,6 @@ const config = (module.exports = { '@typescript-eslint/no-unsafe-member-access': 'off', '@typescript-eslint/no-unsafe-return': 'off', '@typescript-eslint/no-unused-expressions': 'off', - '@typescript-eslint/no-unused-vars': 'off', '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/no-var-requires': 'off', '@typescript-eslint/prefer-nullish-coalescing': 'off', diff --git a/packages/cli/src/WorkflowExecuteAdditionalData.ts b/packages/cli/src/WorkflowExecuteAdditionalData.ts index 0e2d2f313d..9eef7ab40a 100644 --- a/packages/cli/src/WorkflowExecuteAdditionalData.ts +++ b/packages/cli/src/WorkflowExecuteAdditionalData.ts @@ -2,7 +2,6 @@ /* eslint-disable @typescript-eslint/no-use-before-define */ /* eslint-disable id-denylist */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { WorkflowExecute } from 'n8n-core'; @@ -305,11 +304,7 @@ function hookFunctionsPush(): IWorkflowExecuteHooks { }, ], workflowExecuteAfter: [ - async function ( - this: WorkflowHooks, - fullRunData: IRun, - newStaticData: IDataObject, - ): Promise { + async function (this: WorkflowHooks, fullRunData: IRun): Promise { const { sessionId, executionId, retryOf } = this; const { id: workflowId } = this.workflowData; logger.debug('Executing hook (hookFunctionsPush)', { @@ -360,8 +355,7 @@ function hookFunctionsPush(): IWorkflowExecuteHooks { }; } -export function hookFunctionsPreExecute(parentProcessMode?: string): IWorkflowExecuteHooks { - const logger = Container.get(Logger); +export function hookFunctionsPreExecute(): IWorkflowExecuteHooks { const externalHooks = Container.get(ExternalHooks); return { workflowExecuteBefore: [ @@ -556,7 +550,7 @@ function hookFunctionsSaveWorker(): IWorkflowExecuteHooks { }, ], workflowExecuteBefore: [ - async function (workflow: Workflow, data: IRunExecutionData): Promise { + async function (): Promise { void internalHooks.onWorkflowBeforeExecute(this.executionId, this.workflowData); }, ], @@ -625,15 +619,11 @@ function hookFunctionsSaveWorker(): IWorkflowExecuteHooks { eventsService.emit('workflowExecutionCompleted', this.workflowData, fullRunData); } }, - async function ( - this: WorkflowHooks, - fullRunData: IRun, - newStaticData: IDataObject, - ): Promise { + async function (this: WorkflowHooks, fullRunData: IRun): Promise { // send tracking and event log events, but don't wait for them void internalHooks.onWorkflowPostExecute(this.executionId, this.workflowData, fullRunData); }, - async function (this: WorkflowHooks, fullRunData: IRun, newStaticData: IDataObject) { + async function (this: WorkflowHooks, fullRunData: IRun) { const externalHooks = Container.get(ExternalHooks); if (externalHooks.exists('workflow.postExecute')) { try { @@ -661,7 +651,6 @@ export async function getRunData( workflowData: IWorkflowBase, userId: string, inputData?: INodeExecutionData[], - parentWorkflowId?: string, ): Promise { const mode = 'integrated'; @@ -1012,7 +1001,7 @@ function getWorkflowHooksIntegrated( ): WorkflowHooks { optionalParameters = optionalParameters || {}; const hookFunctions = hookFunctionsSave(optionalParameters.parentProcessMode); - const preExecuteFunctions = hookFunctionsPreExecute(optionalParameters.parentProcessMode); + const preExecuteFunctions = hookFunctionsPreExecute(); for (const key of Object.keys(preExecuteFunctions)) { if (hookFunctions[key] === undefined) { hookFunctions[key] = []; @@ -1034,7 +1023,7 @@ export function getWorkflowHooksWorkerExecuter( ): WorkflowHooks { optionalParameters = optionalParameters || {}; const hookFunctions = hookFunctionsSaveWorker(); - const preExecuteFunctions = hookFunctionsPreExecute(optionalParameters.parentProcessMode); + const preExecuteFunctions = hookFunctionsPreExecute(); for (const key of Object.keys(preExecuteFunctions)) { if (hookFunctions[key] === undefined) { hookFunctions[key] = []; @@ -1055,7 +1044,7 @@ export function getWorkflowHooksWorkerMain( optionalParameters?: IWorkflowHooksOptionalParameters, ): WorkflowHooks { optionalParameters = optionalParameters || {}; - const hookFunctions = hookFunctionsPreExecute(optionalParameters.parentProcessMode); + const hookFunctions = hookFunctionsPreExecute(); // TODO: why are workers pushing to frontend? // TODO: simplifying this for now to just leave the bare minimum hooks @@ -1075,11 +1064,7 @@ export function getWorkflowHooksWorkerMain( hookFunctions.nodeExecuteBefore = []; hookFunctions.nodeExecuteAfter = []; hookFunctions.workflowExecuteAfter = [ - async function ( - this: WorkflowHooks, - fullRunData: IRun, - newStaticData: IDataObject, - ): Promise { + async function (this: WorkflowHooks, fullRunData: IRun): Promise { const executionStatus = determineFinalExecutionStatus(fullRunData); const saveSettings = toSaveSettings(this.workflowData.settings); diff --git a/packages/cli/src/WorkflowRunnerProcess.ts b/packages/cli/src/WorkflowRunnerProcess.ts index 7ea03f5d7f..a4c1e9df83 100644 --- a/packages/cli/src/WorkflowRunnerProcess.ts +++ b/packages/cli/src/WorkflowRunnerProcess.ts @@ -212,7 +212,6 @@ class WorkflowRunnerProcess { workflowData, additionalData.userId, options?.inputData, - options?.parentWorkflowId, ); await sendToParentProcess('startExecution', { runData }); const executionId: string = await new Promise((resolve) => { diff --git a/packages/cli/src/commands/start.ts b/packages/cli/src/commands/start.ts index 955d429586..fdfeee92b9 100644 --- a/packages/cli/src/commands/start.ts +++ b/packages/cli/src/commands/start.ts @@ -77,8 +77,7 @@ export class Start extends BaseCommand { private openBrowser() { const editorUrl = Container.get(UrlService).baseUrl; - // eslint-disable-next-line @typescript-eslint/no-unused-vars - open(editorUrl, { wait: true }).catch((error: Error) => { + open(editorUrl, { wait: true }).catch(() => { console.log( `\nWas not able to open URL in browser. Please open manually by visiting:\n${editorUrl}\n`, ); diff --git a/packages/cli/src/config/types.ts b/packages/cli/src/config/types.ts index e6c91b5009..eb87e2ca21 100644 --- a/packages/cli/src/config/types.ts +++ b/packages/cli/src/config/types.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/naming-convention */ -/* eslint-disable @typescript-eslint/no-unused-vars */ import type { BinaryData } from 'n8n-core'; import type { schema } from './schema'; diff --git a/packages/cli/src/eventbus/MessageEventBusDestination/MessageEventBusDestinationWebhook.ee.ts b/packages/cli/src/eventbus/MessageEventBusDestination/MessageEventBusDestinationWebhook.ee.ts index 348eb0ef66..3fba5e7e3c 100644 --- a/packages/cli/src/eventbus/MessageEventBusDestination/MessageEventBusDestinationWebhook.ee.ts +++ b/packages/cli/src/eventbus/MessageEventBusDestination/MessageEventBusDestinationWebhook.ee.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unused-vars */ import { MessageEventBusDestination } from './MessageEventBusDestination.ee'; import axios from 'axios'; @@ -133,7 +132,6 @@ export class MessageEventBusDestinationWebhook const sendQuery = this.sendQuery; const specifyQuery = this.specifyQuery; - const sendPayload = this.sendPayload; const sendHeaders = this.sendHeaders; const specifyHeaders = this.specifyHeaders; @@ -287,8 +285,6 @@ export class MessageEventBusDestinationWebhook let httpDigestAuth; let httpHeaderAuth; let httpQueryAuth; - let oAuth1Api; - let oAuth2Api; if (this.authentication === 'genericCredentialType') { if (this.genericAuthType === 'httpBasicAuth') { @@ -307,14 +303,6 @@ export class MessageEventBusDestinationWebhook try { httpQueryAuth = await this.matchDecryptedCredentialType('httpQueryAuth'); } catch {} - } else if (this.genericAuthType === 'oAuth1Api') { - try { - oAuth1Api = await this.matchDecryptedCredentialType('oAuth1Api'); - } catch {} - } else if (this.genericAuthType === 'oAuth2Api') { - try { - oAuth2Api = await this.matchDecryptedCredentialType('oAuth2Api'); - } catch {} } } diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 4398f65fb6..86b8d550e8 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -13,7 +13,6 @@ "tsBuildInfoFile": "dist/typecheck.tsbuildinfo", // TODO: remove all options below this line "strict": false, - "noUnusedLocals": false, "useUnknownInCatchVariables": false }, "include": ["src/**/*.ts", "test/**/*.ts", "src/sso/saml/saml-schema-metadata-2.0.xsd"], diff --git a/packages/core/src/NodeExecuteFunctions.ts b/packages/core/src/NodeExecuteFunctions.ts index db14c76437..6079fea634 100644 --- a/packages/core/src/NodeExecuteFunctions.ts +++ b/packages/core/src/NodeExecuteFunctions.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ /* eslint-disable @typescript-eslint/naming-convention */ /* eslint-disable @typescript-eslint/no-unsafe-call */ @@ -2527,8 +2526,6 @@ async function getInputConnectionData( closeFunctions: CloseFunction[], inputName: ConnectionTypes, itemIndex: number, - // TODO: Not implemented yet, and maybe also not needed - inputIndex?: number, ): Promise { const node = this.getNode(); const nodeType = workflow.nodeTypes.getByNameAndVersion(node.type, node.typeVersion); @@ -3201,12 +3198,12 @@ export function getExecutePollFunctions( return ((workflow: Workflow, node: INode) => { return { ...getCommonWorkflowFunctions(workflow, node, additionalData), - __emit: (data: INodeExecutionData[][]): void => { + __emit: (): void => { throw new ApplicationError( 'Overwrite NodeExecuteFunctions.getExecutePollFunctions.__emit function!', ); }, - __emitError(error: Error) { + __emitError() { throw new ApplicationError( 'Overwrite NodeExecuteFunctions.getExecutePollFunctions.__emitError function!', ); @@ -3264,12 +3261,12 @@ export function getExecuteTriggerFunctions( return ((workflow: Workflow, node: INode) => { return { ...getCommonWorkflowFunctions(workflow, node, additionalData), - emit: (data: INodeExecutionData[][]): void => { + emit: (): void => { throw new ApplicationError( 'Overwrite NodeExecuteFunctions.getExecuteTriggerFunctions.emit function!', ); }, - emitError: (error: Error): void => { + emitError: (): void => { throw new ApplicationError( 'Overwrite NodeExecuteFunctions.getExecuteTriggerFunctions.emit function!', ); @@ -3390,8 +3387,6 @@ export function getExecuteFunctions( async getInputConnectionData( inputName: ConnectionTypes, itemIndex: number, - // TODO: Not implemented yet, and maybe also not needed - inputIndex?: number, ): Promise { return await getInputConnectionData.call( this, @@ -3405,7 +3400,6 @@ export function getExecuteFunctions( closeFunctions, inputName, itemIndex, - inputIndex, ); }, @@ -3919,8 +3913,6 @@ export function getExecuteWebhookFunctions( async getInputConnectionData( inputName: ConnectionTypes, itemIndex: number, - // TODO: Not implemented yet, and maybe also not needed - inputIndex?: number, ): Promise { // To be able to use expressions like "$json.sessionId" set the // body data the webhook received to what is normally used for @@ -3954,7 +3946,6 @@ export function getExecuteWebhookFunctions( closeFunctions, inputName, itemIndex, - inputIndex, ); }, getMode: () => mode, diff --git a/packages/node-dev/tsconfig.json b/packages/node-dev/tsconfig.json index bb21c4d964..b3826a84e4 100644 --- a/packages/node-dev/tsconfig.json +++ b/packages/node-dev/tsconfig.json @@ -5,7 +5,6 @@ "preserveSymlinks": true, "tsBuildInfoFile": "dist/build.tsbuildinfo", // TODO: remove all options below this line - "noUnusedLocals": false, "useUnknownInCatchVariables": false }, "include": ["commands/**/*.ts", "src/**/*.ts"] diff --git a/packages/nodes-base/.eslintrc.js b/packages/nodes-base/.eslintrc.js index 5193ea70b7..4cd5e580a9 100644 --- a/packages/nodes-base/.eslintrc.js +++ b/packages/nodes-base/.eslintrc.js @@ -33,7 +33,6 @@ module.exports = { '@typescript-eslint/prefer-nullish-coalescing': 'warn', '@typescript-eslint/no-base-to-string': 'warn', '@typescript-eslint/no-redundant-type-constituents': 'warn', - '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-unsafe-argument': 'warn', '@typescript-eslint/prefer-optional-chain': 'warn', '@typescript-eslint/restrict-plus-operands': 'warn', diff --git a/packages/workflow/src/WorkflowDataProxy.ts b/packages/workflow/src/WorkflowDataProxy.ts index 96c77452a2..4e8de2a5a6 100644 --- a/packages/workflow/src/WorkflowDataProxy.ts +++ b/packages/workflow/src/WorkflowDataProxy.ts @@ -1,6 +1,4 @@ /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ -/* eslint-disable @typescript-eslint/no-unused-vars */ - /* eslint-disable @typescript-eslint/no-this-alias */ /* eslint-disable @typescript-eslint/no-unsafe-return */ @@ -122,13 +120,13 @@ export class WorkflowDataProxy { return Reflect.ownKeys(target); }, - getOwnPropertyDescriptor(k) { + getOwnPropertyDescriptor() { return { enumerable: true, configurable: true, }; }, - get(target, name, receiver) { + get(_, name) { if (name === 'isProxy') return true; name = name.toString(); @@ -151,7 +149,7 @@ export class WorkflowDataProxy { return Reflect.ownKeys(target); }, - get(target, name, receiver) { + get(_, name) { if (name === 'isProxy') return true; name = name.toString(); return that.selfData[name]; @@ -175,13 +173,13 @@ export class WorkflowDataProxy { ownKeys(target) { return Reflect.ownKeys(target); }, - getOwnPropertyDescriptor(k) { + getOwnPropertyDescriptor() { return { enumerable: true, configurable: true, }; }, - get(target, name, receiver) { + get(target, name) { if (name === 'isProxy') return true; if (name === 'toJSON') return () => deepCopy(target); @@ -439,7 +437,7 @@ export class WorkflowDataProxy { {}, { has: () => true, - get(target, name, receiver) { + get(_, name) { if (name === 'isProxy') return true; if (typeof process === 'undefined') { @@ -470,10 +468,10 @@ export class WorkflowDataProxy { {}, { has: () => true, - ownKeys(target) { + ownKeys() { return allowedValues; }, - getOwnPropertyDescriptor(k) { + getOwnPropertyDescriptor() { return { enumerable: true, configurable: true, @@ -518,10 +516,10 @@ export class WorkflowDataProxy { {}, { has: () => true, - ownKeys(target) { + ownKeys() { return allowedValues; }, - getOwnPropertyDescriptor(k) { + getOwnPropertyDescriptor() { return { enumerable: true, configurable: true, @@ -561,7 +559,7 @@ export class WorkflowDataProxy { {}, { has: () => true, - get(target, name, receiver) { + get(_, name) { if (name === 'isProxy') return true; const nodeName = name.toString(); @@ -932,7 +930,7 @@ export class WorkflowDataProxy { {}, { has: () => true, - ownKeys(target) { + ownKeys() { return [ 'pairedItem', 'itemMatching', @@ -1056,10 +1054,10 @@ export class WorkflowDataProxy { $input: new Proxy({} as ProxyInput, { has: () => true, - ownKeys(target) { + ownKeys() { return ['all', 'context', 'first', 'item', 'last', 'params']; }, - getOwnPropertyDescriptor(k) { + getOwnPropertyDescriptor() { return { enumerable: true, configurable: true, diff --git a/tsconfig.build.json b/tsconfig.build.json index 11866f14e1..8a1a0105e3 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -2,6 +2,8 @@ "compilerOptions": { "types": ["node"], "noEmit": false, + "noUnusedLocals": false, + "noUnusedParameters": false, "declaration": true }, "tsc-alias": { diff --git a/tsconfig.json b/tsconfig.json index f37b693003..1b0bd25650 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "noImplicitAny": true, "noImplicitReturns": true, "noUnusedLocals": true, + "noUnusedParameters": true, "strictNullChecks": true, "preserveConstEnums": true, "esModuleInterop": true,