mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 20:24:05 -08:00
ci: Enforce noUnusedLocals
on all backend and nodes packages (no-changelog) (#8428)
This commit is contained in:
parent
16a2ea5df0
commit
cc2f0ada76
|
@ -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',
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
"forceConsistentCasingInFileNames": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitReturns": true,
|
||||
"noUnusedLocals": true,
|
||||
"strictNullChecks": true,
|
||||
"preserveConstEnums": true,
|
||||
"esModuleInterop": true,
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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<void> {
|
||||
async function (this: WorkflowHooks, fullRunData: IRun): Promise<void> {
|
||||
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<void> {
|
||||
async function (): Promise<void> {
|
||||
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<void> {
|
||||
async function (this: WorkflowHooks, fullRunData: IRun): Promise<void> {
|
||||
// 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<IWorkflowExecutionDataProcess> {
|
||||
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<void> {
|
||||
async function (this: WorkflowHooks, fullRunData: IRun): Promise<void> {
|
||||
const executionStatus = determineFinalExecutionStatus(fullRunData);
|
||||
const saveSettings = toSaveSettings(this.workflowData.settings);
|
||||
|
||||
|
|
|
@ -212,7 +212,6 @@ class WorkflowRunnerProcess {
|
|||
workflowData,
|
||||
additionalData.userId,
|
||||
options?.inputData,
|
||||
options?.parentWorkflowId,
|
||||
);
|
||||
await sendToParentProcess('startExecution', { runData });
|
||||
const executionId: string = await new Promise((resolve) => {
|
||||
|
|
|
@ -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`,
|
||||
);
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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 {}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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"],
|
||||
|
|
|
@ -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<unknown> {
|
||||
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<unknown> {
|
||||
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<unknown> {
|
||||
// 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,
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
"compilerOptions": {
|
||||
"types": ["node"],
|
||||
"noEmit": false,
|
||||
"noUnusedLocals": false,
|
||||
"noUnusedParameters": false,
|
||||
"declaration": true
|
||||
},
|
||||
"tsc-alias": {
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
"noImplicitAny": true,
|
||||
"noImplicitReturns": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"strictNullChecks": true,
|
||||
"preserveConstEnums": true,
|
||||
"esModuleInterop": true,
|
||||
|
|
Loading…
Reference in a new issue