1
1
mirror of https://github.com/n8n-io/n8n.git synced 2024-09-20 01:19:07 +03:00

fix(core): Remove linting exceptions in nodes-base, @typescript-eslint/no-unsafe-argument (no-changelog)

This commit is contained in:
Michael Kret 2023-02-28 05:39:43 +02:00 committed by GitHub
parent 3172ea376e
commit bb4db58819
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
560 changed files with 2227 additions and 1919 deletions

View File

@ -22,7 +22,7 @@ module.exports = {
'@typescript-eslint/naming-convention': ['error', { selector: 'memberLike', format: null }],
'@typescript-eslint/no-explicit-any': 'off', //812 warnings, better to fix in separate PR
'@typescript-eslint/no-non-null-assertion': 'off', //665 errors, better to fix in separate PR
'@typescript-eslint/no-unsafe-argument': 'off', //1538 errors, better to fix in separate PR
// '@typescript-eslint/no-unsafe-argument': 'off', //1538 errors, better to fix in separate PR
'@typescript-eslint/no-unsafe-assignment': 'off', //7084 problems, better to fix in separate PR
'@typescript-eslint/no-unsafe-call': 'off', //541 errors, better to fix in separate PR
'@typescript-eslint/no-unsafe-member-access': 'off', //4591 errors, better to fix in separate PR

View File

@ -481,10 +481,12 @@ export class ActionNetwork implements INodeType {
response =
operation === 'getAll'
? response.map((entry: Response) => simplifyResponse(entry, resource))
: simplifyResponse(response, resource);
: simplifyResponse(response as Response, resource);
}
Array.isArray(response) ? returnData.push(...response) : returnData.push(response);
Array.isArray(response)
? returnData.push(...(response as IDataObject[]))
: returnData.push(response as IDataObject);
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ error: error.message });

View File

@ -81,14 +81,16 @@ export async function handleListing(
do {
responseData = await actionNetworkApiRequest.call(this, method, endpoint, body, qs);
const items = responseData._embedded[itemsKey];
returnData.push(...items);
returnData.push(...(items as IDataObject[]));
if (!returnAll && returnData.length >= limit) {
return returnData.slice(0, limit);
}
if (responseData._links?.next?.href) {
const queryString = new URLSearchParams(responseData._links.next.href.split('?')[1]);
const queryString = new URLSearchParams(
responseData._links.next.href.split('?')[1] as string,
);
qs.page = queryString.get('page') as string;
}
} while (responseData._links?.next);

View File

@ -1182,7 +1182,7 @@ export class ActiveCampaign implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);

View File

@ -169,7 +169,7 @@ export class ActiveCampaignTrigger implements INodeType {
async webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const req = this.getRequestObject();
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
}

View File

@ -1,6 +1,6 @@
import type { IExecuteFunctions, IHookFunctions } from 'n8n-core';
import type { IDataObject, ILoadOptionsFunctions, INodeProperties } from 'n8n-workflow';
import type { IDataObject, ILoadOptionsFunctions, INodeProperties, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { OptionsWithUri } from 'request';
@ -49,7 +49,7 @@ export async function activeCampaignApiRequest(
);
if (responseData.success === false) {
throw new NodeApiError(this.getNode(), responseData);
throw new NodeApiError(this.getNode(), responseData as JsonObject);
}
if (dataKey === undefined) {
@ -58,7 +58,7 @@ export async function activeCampaignApiRequest(
return responseData[dataKey] as IDataObject;
}
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -91,12 +91,12 @@ export async function activeCampaignApiRequestAllItems(
responseData = await activeCampaignApiRequest.call(this, method, endpoint, body, query);
if (dataKey === undefined) {
returnData.push.apply(returnData, responseData);
returnData.push.apply(returnData, responseData as IDataObject[]);
if (returnData !== undefined) {
itemsReceived += returnData.length;
}
} else {
returnData.push.apply(returnData, responseData[dataKey]);
returnData.push.apply(returnData, responseData[dataKey] as IDataObject[]);
if (responseData[dataKey] !== undefined) {
itemsReceived += responseData[dataKey].length;
}

View File

@ -168,7 +168,7 @@ export class AcuitySchedulingTrigger implements INodeType {
if (!resolveData) {
// Return the data as it got received
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
@ -179,7 +179,7 @@ export class AcuitySchedulingTrigger implements INodeType {
const responseData = await acuitySchedulingApiRequest.call(this, 'GET', endpoint, {});
return {
workflowData: [this.helpers.returnJsonArray(responseData)],
workflowData: [this.helpers.returnJsonArray(responseData as IDataObject)],
};
}
}

View File

@ -6,7 +6,7 @@ import type {
ILoadOptionsFunctions,
IWebhookFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function acuitySchedulingApiRequest(
@ -58,6 +58,6 @@ export async function acuitySchedulingApiRequest(
);
}
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -415,7 +415,7 @@ export class Affinity implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);

View File

@ -167,7 +167,10 @@ export class AffinityTrigger implements INodeType {
const events = this.getNodeParameter('events') as string[];
for (const webhook of responseData) {
if (eventsExist(webhook.subscriptions, events) && webhook.webhook_url === webhookUrl) {
if (
eventsExist(webhook.subscriptions as string[], events) &&
webhook.webhook_url === webhookUrl
) {
// Set webhook-id to be sure that it can be deleted
const webhookData = this.getWorkflowStaticData('node');
webhookData.webhookId = webhook.id as string;

View File

@ -3,7 +3,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-core';
import { BINARY_ENCODING } from 'n8n-core';
import type { IDataObject, IHookFunctions, IWebhookFunctions } from 'n8n-workflow';
import type { IDataObject, IHookFunctions, IWebhookFunctions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function affinityApiRequest(
@ -32,7 +32,7 @@ export async function affinityApiRequest(
uri: uri || `${endpoint}${resource}`,
json: true,
};
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.body;
}
if (!Object.keys(query).length) {
@ -42,7 +42,7 @@ export async function affinityApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -64,7 +64,7 @@ export async function affinityApiRequestAllItems(
responseData = await affinityApiRequest.call(this, method, resource, body, query);
// @ts-ignore
query.page_token = responseData.page_token;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData.page_token !== undefined && responseData.page_token !== null);
return returnData;

View File

@ -191,6 +191,7 @@ export class AgileCrm implements INodeType {
}
if (simple) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
responseData = simplifyResponse(responseData);
}
} else if (operation === 'create') {

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { IContactUpdate } from './ContactInterface';
@ -51,7 +51,7 @@ export async function agileCrmApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -79,7 +79,7 @@ export async function agileCrmApiRequestAllItems(
sendAsForm,
);
if (responseData.length !== 0) {
returnData.push.apply(returnData, responseData);
returnData.push.apply(returnData, responseData as IDataObject[]);
if (sendAsForm) {
body.cursor = responseData[responseData.length - 1].cursor;
} else {
@ -169,9 +169,9 @@ export async function agileCrmApiRequestUpdate(
return lastSuccesfulUpdateReturn;
} catch (error) {
if (successfulUpdates.length === 0) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
} else {
throw new NodeApiError(this.getNode(), error, {
throw new NodeApiError(this.getNode(), error as JsonObject, {
message: `Not all properties updated. Updated properties: ${successfulUpdates.join(', ')}`,
description: error.message,
httpCode: error.statusCode,

View File

@ -8,6 +8,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import type { IRecord } from './GenericFunctions';
import { apiRequest, apiRequestAllItems, downloadRecordAttachments } from './GenericFunctions';
export class Airtable implements INodeType {
@ -567,7 +568,7 @@ export class Airtable implements INodeType {
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData.records),
this.helpers.returnJsonArray(responseData.records as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -609,7 +610,7 @@ export class Airtable implements INodeType {
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData.records),
this.helpers.returnJsonArray(responseData.records as IDataObject[]),
{ itemData: { item: i } },
);
@ -654,7 +655,7 @@ export class Airtable implements INodeType {
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
}
returnData.push.apply(returnData, responseData.records);
returnData.push.apply(returnData, responseData.records as INodeExecutionData[]);
if (downloadAttachments === true) {
const downloadFieldNames = (
@ -662,7 +663,7 @@ export class Airtable implements INodeType {
).split(',');
const data = await downloadRecordAttachments.call(
this,
responseData.records,
responseData.records as IRecord[],
downloadFieldNames,
);
return [data];
@ -704,7 +705,7 @@ export class Airtable implements INodeType {
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -786,7 +787,7 @@ export class Airtable implements INodeType {
responseData = await apiRequest.call(this, requestMethod, endpoint, data, qs);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData.records),
this.helpers.returnJsonArray(responseData.records as IDataObject[]),
{ itemData: { item: i } },
);

View File

@ -8,6 +8,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import type { IRecord } from './GenericFunctions';
import { apiRequestAllItems, downloadRecordAttachments } from './GenericFunctions';
import moment from 'moment';
@ -245,7 +246,11 @@ export class AirtableTrigger implements INodeType {
const downloadFieldNames = (this.getNodeParameter('downloadFieldNames', 0) as string).split(
',',
);
const data = await downloadRecordAttachments.call(this, records, downloadFieldNames);
const data = await downloadRecordAttachments.call(
this,
records as IRecord[],
downloadFieldNames,
);
return [data];
}

View File

@ -86,7 +86,7 @@ export async function apiRequestAllItems(
do {
responseData = await apiRequest.call(this, method, endpoint, body, query);
returnData.push.apply(returnData, responseData.records);
returnData.push.apply(returnData, responseData.records as IDataObject[]);
query.offset = responseData.offset;
} while (responseData.offset !== undefined);
@ -113,7 +113,7 @@ export async function downloadRecordAttachments(
encoding: null,
});
element.binary![`${fieldName}_${index}`] = await this.helpers.prepareBinaryData(
Buffer.from(file),
Buffer.from(file as string),
attachment.filename,
attachment.type,
);

View File

@ -168,23 +168,23 @@ export class AmqpTrigger implements INodeType {
if (options.jsonConvertByteArrayToString === true && data.body.content !== undefined) {
// The buffer is not ready... Stringify and parse back to load it.
const cont = deepCopy(data.body.content);
data.body = String.fromCharCode.apply(null, cont.data);
data.body = String.fromCharCode.apply(null, cont.data as number[]);
}
if (options.jsonConvertByteArrayToString === true && data.body.content !== undefined) {
// The buffer is not ready... Stringify and parse back to load it.
const cont = deepCopy(data.body.content);
data.body = String.fromCharCode.apply(null, cont.data);
data.body = String.fromCharCode.apply(null, cont.data as number[]);
}
if (options.jsonConvertByteArrayToString === true && data.body.content !== undefined) {
// The buffer is not ready... Stringify and parse back to load it.
const content = deepCopy(data.body.content);
data.body = String.fromCharCode.apply(null, content.data);
data.body = String.fromCharCode.apply(null, content.data as number[]);
}
if (options.jsonParseBody === true) {
data.body = jsonParse(data.body);
data.body = jsonParse(data.body as string);
}
if (options.onlyBody === true) {
data = data.body;

View File

@ -364,7 +364,7 @@ export class ApiTemplateIo implements INodeType {
try {
responseData = await apiTemplateIoApiRequest.call(this, 'GET', '/account-information');
returnData.push(responseData);
returnData.push(responseData as IDataObject);
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
@ -437,11 +437,11 @@ export class ApiTemplateIo implements INodeType {
if (download) {
const binaryProperty = this.getNodeParameter('binaryProperty', i);
const data = await downloadImage.call(this, responseData.download_url);
const data = await downloadImage.call(this, responseData.download_url as string);
const fileName = responseData.download_url.split('/').pop();
const binaryData = await this.helpers.prepareBinaryData(
data,
options.fileName || fileName,
data as Buffer,
(options.fileName as string) || (fileName as string),
);
responseData = {
json: responseData,
@ -450,7 +450,7 @@ export class ApiTemplateIo implements INodeType {
},
};
}
returnData.push(responseData);
returnData.push(responseData as IDataObject);
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
@ -517,15 +517,21 @@ export class ApiTemplateIo implements INodeType {
}
}
responseData = await apiTemplateIoApiRequest.call(this, 'POST', '/create', qs, data);
responseData = await apiTemplateIoApiRequest.call(
this,
'POST',
'/create',
qs,
data as IDataObject,
);
if (download) {
const binaryProperty = this.getNodeParameter('binaryProperty', i);
const imageData = await downloadImage.call(this, responseData.download_url);
const imageData = await downloadImage.call(this, responseData.download_url as string);
const fileName = responseData.download_url.split('/').pop();
const binaryData = await this.helpers.prepareBinaryData(
imageData,
options.fileName || fileName,
imageData as Buffer,
(options.fileName || fileName) as string,
);
responseData = {
json: responseData,
@ -534,7 +540,7 @@ export class ApiTemplateIo implements INodeType {
},
};
}
returnData.push(responseData);
returnData.push(responseData as IDataObject);
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });

View File

@ -1,6 +1,7 @@
import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function apiTemplateIoApiRequest(
@ -39,11 +40,11 @@ export async function apiTemplateIoApiRequest(
options,
);
if (response.status === 'error') {
throw new NodeApiError(this.getNode(), response.message);
throw new NodeApiError(this.getNode(), response.message as JsonObject);
}
return response;
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -8,6 +8,7 @@ import type {
INodePropertyOptions,
INodeType,
INodeTypeDescription,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
@ -1691,7 +1692,9 @@ export class Asana implements INodeType {
const responseData = await asanaApiRequest.call(this, 'GET', endpoint, {});
if (responseData.data === undefined) {
throw new NodeApiError(this.getNode(), responseData, { message: 'No data got returned' });
throw new NodeApiError(this.getNode(), responseData as JsonObject, {
message: 'No data got returned',
});
}
const returnData: INodePropertyOptions[] = [];
@ -1730,7 +1733,9 @@ export class Asana implements INodeType {
const responseData = await asanaApiRequest.call(this, 'GET', endpoint, {});
if (responseData.data === undefined) {
throw new NodeApiError(this.getNode(), responseData, { message: 'No data got returned' });
throw new NodeApiError(this.getNode(), responseData as JsonObject, {
message: 'No data got returned',
});
}
const returnData: INodePropertyOptions[] = [];
@ -1818,7 +1823,7 @@ export class Asana implements INodeType {
try {
taskData = await asanaApiRequest.call(this, 'GET', `/tasks/${taskId}`, {});
} catch (error) {
throw new NodeApiError(this.getNode(), error, {
throw new NodeApiError(this.getNode(), error as JsonObject, {
message: `Could not find task with id "${taskId}" so tags could not be loaded.`,
});
}
@ -1827,7 +1832,9 @@ export class Asana implements INodeType {
const responseData = await asanaApiRequest.call(this, 'GET', endpoint, {}, { workspace });
if (responseData.data === undefined) {
throw new NodeApiError(this.getNode(), responseData, { message: 'No data got returned' });
throw new NodeApiError(this.getNode(), responseData as JsonObject, {
message: 'No data got returned',
});
}
const returnData: INodePropertyOptions[] = [];
@ -1863,7 +1870,9 @@ export class Asana implements INodeType {
const responseData = await asanaApiRequest.call(this, 'GET', endpoint, {});
if (responseData.data === undefined) {
throw new NodeApiError(this.getNode(), responseData, { message: 'No data got returned' });
throw new NodeApiError(this.getNode(), responseData as JsonObject, {
message: 'No data got returned',
});
}
const returnData: INodePropertyOptions[] = [];
@ -2400,9 +2409,12 @@ export class Asana implements INodeType {
}
returnData.push(
...this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), {
itemData: { item: i },
}),
...this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData as IDataObject[]),
{
itemData: { item: i },
},
),
);
} catch (error) {
if (this.continueOnFail()) {

View File

@ -240,7 +240,7 @@ export class AsanaTrigger implements INodeType {
// }
return {
workflowData: [this.helpers.returnJsonArray(req.body.events)],
workflowData: [this.helpers.returnJsonArray(req.body.events as IDataObject[])],
};
}
}

View File

@ -51,9 +51,16 @@ export async function asanaApiRequestAllItems(
query.limit = 100;
do {
responseData = await asanaApiRequest.call(this, method, endpoint, body, query, uri);
responseData = await asanaApiRequest.call(
this,
method,
endpoint,
body as IDataObject,
query,
uri,
);
uri = get(responseData, 'next_page.uri');
returnData.push.apply(returnData, responseData.data);
returnData.push.apply(returnData, responseData.data as IDataObject[]);
} while (responseData.next_page !== null);
return returnData;

View File

@ -164,7 +164,7 @@ export class Automizy implements INodeType {
);
responseData = responseData.contacts;
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -186,7 +186,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call(this, 'GET', `/contacts/${contactId}`);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -228,7 +228,7 @@ export class Automizy implements INodeType {
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -258,7 +258,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call(this, 'PATCH', `/contacts/${email}`, body);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -274,7 +274,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call(this, 'POST', '/smart-lists', body);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -296,7 +296,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call(this, 'GET', `/smart-lists/${listId}`);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -332,7 +332,7 @@ export class Automizy implements INodeType {
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -354,7 +354,7 @@ export class Automizy implements INodeType {
);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}

View File

@ -2,7 +2,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, IExecuteSingleFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function automizyApiRequest(
@ -28,7 +28,7 @@ export async function automizyApiRequest(
};
try {
if (Object.keys(body).length === 0) {
if (Object.keys(body as IDataObject).length === 0) {
delete options.body;
}
if (Object.keys(qs).length === 0) {
@ -40,7 +40,7 @@ export async function automizyApiRequest(
//@ts-ignore
return await this.helpers.request.call(this, options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -61,7 +61,7 @@ export async function automizyApiRequestAllItems(
do {
responseData = await automizyApiRequest.call(this, method, endpoint, body, query);
query.page++;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData.pageCount !== responseData.page);
return returnData;

View File

@ -300,7 +300,7 @@ export class Autopilot implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -124,7 +124,7 @@ export class AutopilotTrigger implements INodeType {
async webhook(this: IWebhookFunctions): Promise<IWebhookResponseData> {
const req = this.getRequestObject();
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
}

View File

@ -2,7 +2,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject, IHookFunctions, IWebhookFunctions } from 'n8n-workflow';
import type { IDataObject, IHookFunctions, IWebhookFunctions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function autopilotApiRequest(
@ -32,7 +32,7 @@ export async function autopilotApiRequest(
uri: uri || `${endpoint}${resource}`,
json: true,
};
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.body;
}
if (!Object.keys(query).length) {
@ -42,7 +42,7 @@ export async function autopilotApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -64,7 +64,7 @@ export async function autopilotApiRequestAllItems(
do {
responseData = await autopilotApiRequest.call(this, method, endpoint, body, query);
endpoint = `${base}/${responseData.bookmark}`;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
if (query.limit && returnData.length >= query.limit && !returnAll) {
return returnData;
}

View File

@ -193,7 +193,7 @@ export class AwsLambda implements INodeType {
_errorMessage += `\n\nStack trace:\n${responseData.stackTrace}`;
}
throw new NodeApiError(this.getNode(), responseData);
throw new NodeApiError(this.getNode(), responseData as JsonObject);
} else {
returnData.push({
result: responseData,

View File

@ -216,7 +216,7 @@ export class AwsCertificateManager implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);

View File

@ -7,7 +7,7 @@ import type {
IWebhookFunctions,
} from 'n8n-core';
import type { IDataObject, IHttpRequestOptions } from 'n8n-workflow';
import type { IDataObject, IHttpRequestOptions, JsonObject } from 'n8n-workflow';
import { jsonParse, NodeApiError } from 'n8n-workflow';
export async function awsApiRequest(
@ -37,7 +37,7 @@ export async function awsApiRequest(
try {
return await this.helpers.requestWithAuthentication.call(this, 'aws', requestOptions);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -52,7 +52,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, query, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (e) {
return response;
}
@ -80,7 +80,7 @@ export async function awsApiRequestAllItems(
});
data.NextToken = responseData.NextToken;
}
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} while (responseData.NextToken !== undefined);
return returnData;

View File

@ -43,7 +43,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -60,7 +60,7 @@ export async function awsApiRequestSOAP(
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}

View File

@ -17,6 +17,7 @@ import { itemFields, itemOperations } from './ItemDescription';
import type {
FieldsUiValues,
IAttributeNameUi,
IAttributeValue,
IAttributeValueUi,
IRequestBody,
PutItemUi,
@ -229,10 +230,10 @@ export class AwsDynamoDB implements INodeType {
responseData = await awsApiRequest.call(this, 'dynamodb', 'POST', '/', body, headers);
if (!Object.keys(responseData).length) {
if (!Object.keys(responseData as IDataObject).length) {
responseData = { success: true };
} else if (simple) {
responseData = decodeItem(responseData.Attributes);
responseData = decodeItem(responseData.Attributes as IAttributeValue);
}
} else if (operation === 'get') {
// ----------------------------------
@ -293,7 +294,7 @@ export class AwsDynamoDB implements INodeType {
responseData = responseData.Item;
if (simple && responseData) {
responseData = decodeItem(responseData);
responseData = decodeItem(responseData as IAttributeValue);
}
} else if (operation === 'getAll') {
// ----------------------------------
@ -392,7 +393,7 @@ export class AwsDynamoDB implements INodeType {
}
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -33,7 +33,7 @@ export async function awsApiRequest(
try {
return JSON.parse(
await this.helpers.requestWithAuthentication.call(this, 'aws', requestOptions),
(await this.helpers.requestWithAuthentication.call(this, 'aws', requestOptions)) as string,
);
} catch (error) {
const errorMessage =
@ -72,7 +72,7 @@ export async function awsApiRequestAllItems(
if (responseData.LastEvaluatedKey) {
body!.ExclusiveStartKey = responseData.LastEvaluatedKey;
}
returnData.push(...responseData.Items);
returnData.push(...(responseData.Items as IDataObject[]));
} while (responseData.LastEvaluatedKey !== undefined);
return returnData;

View File

@ -96,7 +96,7 @@ function decodeAttribute(type: AttributeValueType, attribute: string | IAttribut
export function validateJSON(input: any): object {
try {
return JSON.parse(input);
return JSON.parse(input as string);
} catch (error) {
throw new Error('Items must be a valid JSON');
}

View File

@ -443,9 +443,12 @@ export class AwsElb implements INodeType {
}
returnData.push(
...this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), {
itemData: { item: i },
}),
...this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData as IDataObject),
{
itemData: { item: i },
},
),
);
} catch (error) {
if (this.continueOnFail()) {

View File

@ -68,7 +68,7 @@ export async function awsApiRequestREST(
region,
);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (e) {
return response;
}
@ -98,7 +98,7 @@ export async function awsApiRequestSOAP(
);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}
@ -149,9 +149,9 @@ export async function awsApiRequestSOAPAllItems(
}
if (get(responseData, propertyName)) {
if (Array.isArray(get(responseData, propertyName))) {
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} else {
returnData.push(get(responseData, propertyName));
returnData.push(get(responseData, propertyName) as IDataObject);
}
}
} while (

View File

@ -7,7 +7,7 @@ import type {
IWebhookFunctions,
} from 'n8n-core';
import type { IHttpRequestOptions } from 'n8n-workflow';
import type { IHttpRequestOptions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function awsApiRequest(
@ -34,7 +34,7 @@ export async function awsApiRequest(
try {
return await this.helpers.requestWithAuthentication.call(this, 'aws', requestOptions);
} catch (error) {
throw new NodeApiError(this.getNode(), error, { parseXml: true });
throw new NodeApiError(this.getNode(), error as JsonObject, { parseXml: true });
}
}
@ -48,7 +48,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -65,7 +65,7 @@ export async function awsApiRequestSOAP(
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return await new Promise((resolve, reject) => {
parseXml(response, { explicitArray: false }, (err, data) => {
parseXml(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}

View File

@ -472,7 +472,7 @@ export class AwsRekognition implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -67,7 +67,7 @@ export async function awsApiRequestREST(
region,
);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -97,7 +97,7 @@ export async function awsApiRequestSOAP(
);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}
@ -147,9 +147,9 @@ export async function awsApiRequestSOAPAllItems(
}
if (get(responseData, propertyName)) {
if (Array.isArray(get(responseData, propertyName))) {
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} else {
returnData.push(get(responseData, propertyName));
returnData.push(get(responseData, propertyName) as IDataObject);
}
}
if (query.limit && query.limit <= returnData.length) {

View File

@ -201,7 +201,7 @@ export class AwsS3 implements INodeType {
responseData = responseData.slice(0, qs.limit);
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -274,7 +274,7 @@ export class AwsS3 implements INodeType {
responseData = responseData.ListBucketResult.Contents;
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -314,7 +314,7 @@ export class AwsS3 implements INodeType {
qs,
headers,
{},
region,
region as string,
);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray({ success: true }),
@ -343,7 +343,7 @@ export class AwsS3 implements INodeType {
{ 'list-type': 2, prefix: folderKey },
{},
{},
region,
region as string,
);
// folder empty then just delete it
@ -357,7 +357,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
responseData = { deleted: [{ Key: folderKey }] };
@ -395,7 +395,7 @@ export class AwsS3 implements INodeType {
{ delete: '' },
headers,
{},
region,
region as string,
);
responseData = { deleted: responseData.DeleteResult.Deleted };
@ -439,7 +439,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
} else {
qs.limit = this.getNodeParameter('limit', 0);
@ -453,7 +453,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
}
if (Array.isArray(responseData)) {
@ -574,10 +574,10 @@ export class AwsS3 implements INodeType {
qs,
headers,
{},
region,
region as string,
);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData.CopyObjectResult),
this.helpers.returnJsonArray(responseData.CopyObjectResult as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -612,7 +612,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{ encoding: null, resolveWithFullResponse: true },
region,
region as string,
);
let mimeType: string | undefined;
@ -671,7 +671,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray({ success: true }),
@ -714,7 +714,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
} else {
qs.limit = this.getNodeParameter('limit', 0);
@ -728,7 +728,7 @@ export class AwsS3 implements INodeType {
qs,
{},
{},
region,
region as string,
);
responseData = responseData.splice(0, qs.limit);
}
@ -873,7 +873,7 @@ export class AwsS3 implements INodeType {
qs,
headers,
{},
region,
region as string,
);
} else {
const fileContent = this.getNodeParameter('fileContent', i) as string;
@ -893,7 +893,7 @@ export class AwsS3 implements INodeType {
qs,
headers,
{},
region,
region as string,
);
}
const executionData = this.helpers.constructExecutionMetaData(

View File

@ -65,7 +65,7 @@ export async function awsApiRequestREST(
region,
);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -95,7 +95,7 @@ export async function awsApiRequestSOAP(
);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}
@ -145,9 +145,9 @@ export async function awsApiRequestSOAPAllItems(
}
if (get(responseData, propertyName)) {
if (Array.isArray(get(responseData, propertyName))) {
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} else {
returnData.push(get(responseData, propertyName));
returnData.push(get(responseData, propertyName) as IDataObject);
}
}
if (query.limit && query.limit <= returnData.length) {

View File

@ -1282,7 +1282,7 @@ export class AwsSes implements INodeType {
}
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -7,7 +7,7 @@ import type {
IWebhookFunctions,
} from 'n8n-core';
import type { IDataObject, IHttpRequestOptions } from 'n8n-workflow';
import type { IDataObject, IHttpRequestOptions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
@ -37,7 +37,7 @@ export async function awsApiRequest(
try {
return await this.helpers.requestWithAuthentication.call(this, 'aws', requestOptions);
} catch (error) {
throw new NodeApiError(this.getNode(), error, { parseXml: true });
throw new NodeApiError(this.getNode(), error as JsonObject, { parseXml: true });
}
}
@ -51,7 +51,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -68,7 +68,7 @@ export async function awsApiRequestSOAP(
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}
@ -109,9 +109,9 @@ export async function awsApiRequestSOAPAllItems(
}
if (get(responseData, propertyName)) {
if (Array.isArray(get(responseData, propertyName))) {
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} else {
returnData.push(get(responseData, propertyName));
returnData.push(get(responseData, propertyName) as IDataObject);
}
}
} while (

View File

@ -8,6 +8,7 @@ import type {
INodePropertyOptions,
INodeType,
INodeTypeDescription,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
@ -255,7 +256,7 @@ export class AwsSqs implements INodeType {
// loads first 1000 queues from SQS
data = await awsApiRequestSOAP.call(this, 'sqs', 'GET', `?${params.join('&')}`);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
let queues = data.ListQueuesResponse.ListQueuesResult.QueueUrl;
@ -385,7 +386,7 @@ export class AwsSqs implements INodeType {
`${queuePath}?${params.join('&')}`,
);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
const result = responseData.SendMessageResponse.SendMessageResult;

View File

@ -18,6 +18,7 @@ import type {
ICredentialDataDecryptedObject,
ICredentialTestFunctions,
IHttpRequestOptions,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
@ -64,15 +65,15 @@ export async function awsApiRequest(
if (error?.response?.data || error?.response?.body) {
const errorMessage = error?.response?.data || error?.response?.body;
if (errorMessage.includes('AccessDeniedException')) {
const user = JSON.parse(errorMessage).Message.split(' ')[1];
throw new NodeApiError(this.getNode(), error, {
const user = JSON.parse(errorMessage as string).Message.split(' ')[1];
throw new NodeApiError(this.getNode(), error as JsonObject, {
message: 'Unauthorized — please check your AWS policy configuration',
description: `Make sure an identity-based policy allows user ${user} to perform textract:AnalyzeExpense`,
});
}
}
throw new NodeApiError(this.getNode(), error); // no XML parsing needed
throw new NodeApiError(this.getNode(), error as JsonObject); // no XML parsing needed
}
}
@ -86,7 +87,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -103,7 +104,7 @@ export async function awsApiRequestSOAP(
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return await new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}
@ -177,7 +178,7 @@ export async function validateCredentials(
const response = await this.helpers.request(options);
return new Promise((resolve, reject) => {
parseString(response, { explicitArray: false }, (err, data) => {
parseString(response as string, { explicitArray: false }, (err, data) => {
if (err) {
return reject(err);
}

View File

@ -12,7 +12,7 @@ import type {
IWebhookFunctions,
} from 'n8n-core';
import type { ICredentialDataDecryptedObject, IDataObject } from 'n8n-workflow';
import type { ICredentialDataDecryptedObject, IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
@ -67,7 +67,7 @@ export async function awsApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error); // no XML parsing needed
throw new NodeApiError(this.getNode(), error as JsonObject); // no XML parsing needed
}
}
@ -81,7 +81,7 @@ export async function awsApiRequestREST(
): Promise<any> {
const response = await awsApiRequest.call(this, service, method, path, body, headers);
try {
return JSON.parse(response);
return JSON.parse(response as string);
} catch (error) {
return response;
}
@ -116,9 +116,9 @@ export async function awsApiRequestRESTAllItems(
}
if (get(responseData, propertyName)) {
if (Array.isArray(get(responseData, propertyName))) {
returnData.push.apply(returnData, get(responseData, propertyName));
returnData.push.apply(returnData, get(responseData, propertyName) as IDataObject[]);
} else {
returnData.push(get(responseData, propertyName));
returnData.push(get(responseData, propertyName) as IDataObject);
}
}
} while (

View File

@ -26,7 +26,7 @@ export async function get(this: IExecuteFunctions, index: number) {
{},
{ resolveWithFullResponse: true },
);
return this.helpers.returnJsonArray(responseData.body);
return this.helpers.returnJsonArray(responseData.body as IDataObject);
}
const output: string = this.getNodeParameter('output', index) as string;
@ -40,7 +40,7 @@ export async function get(this: IExecuteFunctions, index: number) {
mimeType = mimeType ? mimeType.split(';').find((value) => value.includes('/')) : undefined;
const contentDisposition = response.headers['content-disposition'];
const fileNameRegex = /(?<=filename=").*\b/;
const match = fileNameRegex.exec(contentDisposition);
const match = fileNameRegex.exec(contentDisposition as string);
let fileName = '';
// file name was found

View File

@ -31,5 +31,5 @@ export async function get(this: IExecuteFunctions, index: number): Promise<INode
const responseData = await apiRequest.call(this, requestMethod, endpoint, body);
//return
return this.helpers.returnJsonArray(responseData);
return this.helpers.returnJsonArray(responseData as IDataObject[]);
}

View File

@ -21,9 +21,9 @@ export async function getAll(
//return limited result
if (!returnAll && responseData.employees.length > limit) {
return this.helpers.returnJsonArray(responseData.employees.slice(0, limit));
return this.helpers.returnJsonArray(responseData.employees.slice(0, limit) as IDataObject[]);
}
//return all result
return this.helpers.returnJsonArray(responseData.employees);
return this.helpers.returnJsonArray(responseData.employees as IDataObject[]);
}

View File

@ -27,7 +27,7 @@ export async function download(this: IExecuteFunctions, index: number) {
mimeType = mimeType ? mimeType.split(';').find((value) => value.includes('/')) : undefined;
const contentDisposition = response.headers['content-disposition'];
const fileNameRegex = /(?<=filename=").*\b/;
const match = fileNameRegex.exec(contentDisposition);
const match = fileNameRegex.exec(contentDisposition as string);
let fileName = '';
// file name was found

View File

@ -46,9 +46,9 @@ export async function getAll(
//return limited result
if (!returnAll && responseData.categories.length > limit) {
return this.helpers.returnJsonArray(responseData.categories.slice(0, limit));
return this.helpers.returnJsonArray(responseData.categories.slice(0, limit) as IDataObject[]);
}
//return
return this.helpers.returnJsonArray(responseData.categories);
return this.helpers.returnJsonArray(responseData.categories as IDataObject[]);
}

View File

@ -27,7 +27,7 @@ export async function download(this: IExecuteFunctions, index: number) {
mimeType = mimeType ? mimeType.split(';').find((value) => value.includes('/')) : undefined;
const contentDisposition = response.headers['content-disposition'];
const fileNameRegex = /(?<=filename=").*\b/;
const match = fileNameRegex.exec(contentDisposition);
const match = fileNameRegex.exec(contentDisposition as string);
let fileName = '';
// file name was found

View File

@ -41,9 +41,9 @@ export async function getAll(
//return limited result
if (!returnAll && responseData.categories.length > limit) {
return this.helpers.returnJsonArray(responseData.categories.slice(0, limit));
return this.helpers.returnJsonArray(responseData.categories.slice(0, limit) as IDataObject[]);
}
//return
return this.helpers.returnJsonArray(responseData.categories);
return this.helpers.returnJsonArray(responseData.categories as IDataObject[]);
}

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-unsafe-argument */
import type { IExecuteFunctions } from 'n8n-core';
import type { INodeExecutionData } from 'n8n-workflow';

View File

@ -1,6 +1,6 @@
import type { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { OptionsWithUrl } from 'request';
@ -55,6 +55,6 @@ export async function apiRequest(
} catch (error) {
const description = error?.response?.headers['x-bamboohr-error-messsage'] || '';
const message = error?.message || '';
throw new NodeApiError(this.getNode(), error, { message, description });
throw new NodeApiError(this.getNode(), error as JsonObject, { message, description });
}
}

View File

@ -161,7 +161,7 @@ export class Bannerbear implements INodeType {
});
};
responseData = await promise(responseData.uid);
responseData = await promise(responseData.uid as string);
}
}
//https://developers.bannerbear.com/#get-a-specific-image
@ -184,7 +184,7 @@ export class Bannerbear implements INodeType {
if (Array.isArray(responseData)) {
returnData.push.apply(returnData, responseData as IDataObject[]);
} else {
returnData.push(responseData);
returnData.push(responseData as IDataObject);
}
}
return [this.helpers.returnJsonArray(returnData)];

View File

@ -2,7 +2,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject, IHookFunctions, IWebhookFunctions } from 'n8n-workflow';
import type { IDataObject, IHookFunctions, IWebhookFunctions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import { snakeCase } from 'change-case';
@ -30,7 +30,7 @@ export async function bannerbearApiRequest(
uri: uri || `https://api.bannerbear.com/v2${resource}`,
json: true,
};
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.form;
}
if (!Object.keys(query).length) {
@ -40,7 +40,7 @@ export async function bannerbearApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -229,9 +229,9 @@ export class Baserow implements INodeType {
const endpoint = `/api/database/rows/table/${tableId}/${rowId}/`;
const row = await baserowApiRequest.call(this, 'GET', endpoint, jwtToken);
mapper.idsToNames(row);
mapper.idsToNames(row as Row);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(row),
this.helpers.returnJsonArray(row as Row),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -268,9 +268,9 @@ export class Baserow implements INodeType {
const endpoint = `/api/database/rows/table/${tableId}/`;
const createdRow = await baserowApiRequest.call(this, 'POST', endpoint, jwtToken, body);
mapper.idsToNames(createdRow);
mapper.idsToNames(createdRow as Row);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(createdRow),
this.helpers.returnJsonArray(createdRow as Row),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -309,9 +309,9 @@ export class Baserow implements INodeType {
const endpoint = `/api/database/rows/table/${tableId}/${rowId}/`;
const updatedRow = await baserowApiRequest.call(this, 'PATCH', endpoint, jwtToken, body);
mapper.idsToNames(updatedRow);
mapper.idsToNames(updatedRow as Row);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(updatedRow),
this.helpers.returnJsonArray(updatedRow as Row),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -2,7 +2,7 @@ import type { IExecuteFunctions } from 'n8n-core';
import type { OptionsWithUri } from 'request';
import type { IDataObject, ILoadOptionsFunctions } from 'n8n-workflow';
import type { IDataObject, ILoadOptionsFunctions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { Accumulator, BaserowCredentials, LoadedResource } from './types';
@ -42,7 +42,7 @@ export async function baserowApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -68,7 +68,7 @@ export async function baserowApiRequestAllItems(
do {
responseData = await baserowApiRequest.call(this, method, endpoint, jwtToken, body, qs);
returnData.push(...responseData.results);
returnData.push(...(responseData.results as IDataObject[]));
if (!returnAll && returnData.length > limit) {
return returnData.slice(0, limit);
@ -101,7 +101,7 @@ export async function getJwtToken(
const { token } = (await this.helpers.request(options)) as { token: string };
return token;
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -318,7 +318,7 @@ export class Beeminder implements INodeType {
}
results = await createDatapoint.call(this, data);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(results),
this.helpers.returnJsonArray(results as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -336,7 +336,7 @@ export class Beeminder implements INodeType {
results = await getAllDatapoints.call(this, data);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(results),
this.helpers.returnJsonArray(results as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -353,7 +353,7 @@ export class Beeminder implements INodeType {
}
results = await updateDatapoint.call(this, data);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(results),
this.helpers.returnJsonArray(results as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -365,7 +365,7 @@ export class Beeminder implements INodeType {
};
results = await deleteDatapoint.call(this, data);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(results),
this.helpers.returnJsonArray(results as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -22,7 +22,7 @@ export async function beeminderApiRequest(
json: true,
};
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.body;
}
@ -48,7 +48,7 @@ export async function beeminderApiRequestAllItems(
do {
responseData = await beeminderApiRequest.call(this, method, endpoint, body, query);
query.page++;
returnData.push.apply(returnData, responseData);
returnData.push.apply(returnData, responseData as IDataObject[]);
} while (responseData.length !== 0);
return returnData;

View File

@ -329,7 +329,7 @@ export class BitbucketTrigger implements INodeType {
return {};
}
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
}

View File

@ -5,7 +5,7 @@ import type {
IHookFunctions,
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function bitbucketApiRequest(
@ -31,14 +31,14 @@ export async function bitbucketApiRequest(
json: true,
};
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -64,7 +64,7 @@ export async function bitbucketApiRequestAllItems(
do {
responseData = await bitbucketApiRequest.call(this, method, resource, body, query, uri);
uri = responseData.next;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData.next !== undefined);
return returnData;

View File

@ -207,7 +207,7 @@ export class Bitly implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function bitlyApiRequest(
@ -30,7 +30,7 @@ export async function bitlyApiRequest(
json: true,
};
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
@ -46,7 +46,7 @@ export async function bitlyApiRequest(
});
}
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -71,7 +71,7 @@ export async function bitlyApiRequestAllItems(
do {
responseData = await bitlyApiRequest.call(this, method, resource, body, query, uri);
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
if (responseData.pagination?.next) {
uri = responseData.pagination.next;
}

View File

@ -147,7 +147,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/collections/${id}`;
responseData = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -160,7 +160,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/collections';
responseData = await handleGetAll.call(this, i, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -199,7 +199,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/collections/${id}`;
responseData = await bitwardenApiRequest.call(this, 'PUT', endpoint, {}, body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -220,7 +220,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/events';
responseData = await handleGetAll.call(this, i, 'GET', endpoint, qs, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -260,7 +260,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/groups';
responseData = await bitwardenApiRequest.call(this, 'POST', endpoint, {}, body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -288,7 +288,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/groups/${id}`;
responseData = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -301,7 +301,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/groups';
responseData = await handleGetAll.call(this, i, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -316,7 +316,7 @@ export class Bitwarden implements INodeType {
responseData = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {});
responseData = responseData.map((memberId: string) => ({ memberId }));
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -378,7 +378,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/groups/${groupId}`;
responseData = await bitwardenApiRequest.call(this, 'PUT', endpoint, {}, body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -439,7 +439,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/members/';
responseData = await bitwardenApiRequest.call(this, 'POST', endpoint, {}, body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -468,7 +468,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/members/${id}`;
responseData = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -481,7 +481,7 @@ export class Bitwarden implements INodeType {
const endpoint = '/public/members';
responseData = await handleGetAll.call(this, i, 'GET', endpoint, {}, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
@ -496,7 +496,7 @@ export class Bitwarden implements INodeType {
responseData = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {});
responseData = responseData.map((groupId: string) => ({ groupId }));
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -542,7 +542,7 @@ export class Bitwarden implements INodeType {
const endpoint = `/public/members/${id}`;
responseData = await bitwardenApiRequest.call(this, 'PUT', endpoint, {}, body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -1,6 +1,11 @@
import type { IExecuteFunctions } from 'n8n-core';
import type { IDataObject, ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';
import type {
IDataObject,
ILoadOptionsFunctions,
INodePropertyOptions,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { OptionsWithUri } from 'request';
@ -61,7 +66,7 @@ export async function bitwardenApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -95,7 +100,7 @@ export async function getAccessToken(
const { access_token } = await this.helpers.request(options);
return access_token;
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -130,7 +135,7 @@ export async function loadResource(this: ILoadOptionsFunctions, resource: string
const token = await getAccessToken.call(this);
const endpoint = `/public/${resource}`;
const { data } = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {}, token);
const { data } = await bitwardenApiRequest.call(this, 'GET', endpoint, {}, {}, token as string);
data.forEach(({ id, name, externalId }: { id: string; name: string; externalId?: string }) => {
returnData.push({

View File

@ -149,11 +149,11 @@ export class Box implements INodeType {
items[i] = newItem;
const data = Buffer.from(responseData.body);
const data = Buffer.from(responseData.body as string);
items[i].binary![dataPropertyNameDownload] = await this.helpers.prepareBinaryData(
data as unknown as Buffer,
fileName,
fileName as string,
mimeType,
);
}
@ -524,7 +524,7 @@ export class Box implements INodeType {
}
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject, IOAuth2Options } from 'n8n-workflow';
import type { IDataObject, IOAuth2Options, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function boxApiRequest(
@ -33,7 +33,7 @@ export async function boxApiRequest(
options = Object.assign({}, options, option);
try {
if (Object.keys(body).length === 0) {
if (Object.keys(body as IDataObject).length === 0) {
delete options.body;
}
@ -44,7 +44,7 @@ export async function boxApiRequest(
//@ts-ignore
return await this.helpers.requestOAuth2.call(this, 'boxOAuth2Api', options, oAuth2Options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -65,7 +65,7 @@ export async function boxApiRequestAllItems(
do {
responseData = await boxApiRequest.call(this, method, endpoint, body, query);
query.offset = (responseData.offset as number) + query.limit;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData[propertyName].length !== 0);
return returnData;

View File

@ -198,7 +198,7 @@ export class Brandfetch implements INodeType {
newItem.binary![`${imageType}_${imageFormat}`] =
await this.helpers.prepareBinaryData(
data,
data as Buffer,
`${imageType}_${domain}.${imageFormat}`,
);
@ -212,7 +212,7 @@ export class Brandfetch implements INodeType {
}
} else {
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(response.response),
this.helpers.returnJsonArray(response.response as IDataObject),
{ itemData: { item: i } },
);
responseData.push(...executionData);
@ -227,7 +227,7 @@ export class Brandfetch implements INodeType {
const response = await brandfetchApiRequest.call(this, 'POST', '/color', body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(response),
this.helpers.returnJsonArray(response as IDataObject),
{ itemData: { item: i } },
);
responseData.push(...executionData);
@ -241,7 +241,7 @@ export class Brandfetch implements INodeType {
const response = await brandfetchApiRequest.call(this, 'POST', '/font', body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(response),
this.helpers.returnJsonArray(response as IDataObject),
{ itemData: { item: i } },
);
responseData.push(...executionData);
@ -255,7 +255,7 @@ export class Brandfetch implements INodeType {
const response = await brandfetchApiRequest.call(this, 'POST', '/company', body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(response),
this.helpers.returnJsonArray(response as IDataObject),
{ itemData: { item: i } },
);
responseData.push(...executionData);
@ -270,7 +270,7 @@ export class Brandfetch implements INodeType {
const response = await brandfetchApiRequest.call(this, 'POST', '/industry', body);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(response),
this.helpers.returnJsonArray(response as IDataObject),
{ itemData: { item: i } },
);
responseData.push(...executionData);

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function brandfetchApiRequest(
@ -39,7 +39,7 @@ export async function brandfetchApiRequest(
delete options.headers;
}
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.body;
}
if (!Object.keys(qs).length) {
@ -49,11 +49,11 @@ export async function brandfetchApiRequest(
const response = await this.helpers.request(options);
if (response.statusCode && response.statusCode !== 200) {
throw new NodeApiError(this.getNode(), response);
throw new NodeApiError(this.getNode(), response as JsonObject);
}
return response;
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -174,7 +174,7 @@ export class Bubble implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -1,6 +1,6 @@
import type { IExecuteFunctions, IHookFunctions } from 'n8n-core';
import type { IDataObject, ILoadOptionsFunctions } from 'n8n-workflow';
import type { IDataObject, ILoadOptionsFunctions, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import type { OptionsWithUri } from 'request';
@ -51,7 +51,7 @@ export async function bubbleApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -73,7 +73,7 @@ export async function bubbleApiRequestAllItems(
do {
responseData = await bubbleApiRequest.call(this, method, endpoint, body, qs);
qs.cursor += qs.limit;
returnData.push.apply(returnData, responseData.response.results);
returnData.push.apply(returnData, responseData.response.results as IDataObject[]);
} while (responseData.response.remaining !== 0);
return returnData;

View File

@ -1,6 +1,7 @@
import type { IHookFunctions, IWebhookFunctions } from 'n8n-core';
import type {
IDataObject,
ILoadOptionsFunctions,
INodePropertyOptions,
INodeType,
@ -121,7 +122,6 @@ export class CalTrigger implements INodeType {
},
};
// @ts-ignore (because of request)
webhookMethods = {
default: {
async checkExists(this: IHookFunctions): Promise<boolean> {
@ -196,9 +196,9 @@ export class CalTrigger implements INodeType {
return {
workflowData: [
this.helpers.returnJsonArray({
triggerEvent: req.body.triggerEvent,
createdAt: req.body.createdAt,
...req.body.payload,
triggerEvent: req.body.triggerEvent as string,
createdAt: req.body.createdAt as string,
...(req.body.payload as IDataObject),
}),
],
};

View File

@ -7,6 +7,7 @@ import type {
IHttpRequestOptions,
INodePropertyOptions,
IWebhookFunctions,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
@ -36,7 +37,7 @@ export async function calApiRequest(
try {
return await this.helpers.httpRequestWithAuthentication.call(this, 'calApi', options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -50,7 +50,7 @@ export async function calendlyApiRequest(
json: true,
};
if (!Object.keys(body).length) {
if (!Object.keys(body as IDataObject).length) {
delete options.form;
}
if (!Object.keys(query).length) {

View File

@ -4,6 +4,7 @@ import type {
INodeExecutionData,
INodeType,
INodeTypeDescription,
JsonObject,
NodeParameterValue,
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
@ -597,7 +598,7 @@ export class Chargebee implements INodeType {
try {
responseData = await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
if (resource === 'invoice' && operation === 'list') {
@ -620,7 +621,7 @@ export class Chargebee implements INodeType {
returnData.push(...responseData);
} else {
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...responseData);

View File

@ -1,6 +1,11 @@
import type { IWebhookFunctions } from 'n8n-core';
import type { INodeType, INodeTypeDescription, IWebhookResponseData } from 'n8n-workflow';
import type {
IDataObject,
INodeType,
INodeTypeDescription,
IWebhookResponseData,
} from 'n8n-workflow';
export class ChargebeeTrigger implements INodeType {
description: INodeTypeDescription = {
@ -236,7 +241,7 @@ export class ChargebeeTrigger implements INodeType {
}
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject[])],
};
}
}

View File

@ -74,7 +74,7 @@ export class CircleCi implements INodeType {
responseData = await circleciApiRequest.call(this, 'GET', endpoint, {}, qs);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -108,7 +108,7 @@ export class CircleCi implements INodeType {
responseData = responseData.splice(0, qs.limit);
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -135,13 +135,13 @@ export class CircleCi implements INodeType {
responseData = await circleciApiRequest.call(this, 'POST', endpoint, body, qs);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
}
returnData.push(...responseData);
returnData.push(...(responseData as INodeExecutionData[]));
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ error: error.message, json: {}, itemIndex: i });

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function circleciApiRequest(
@ -33,13 +33,13 @@ export async function circleciApiRequest(
json: true,
};
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -62,7 +62,7 @@ export async function circleciApiRequestAllItems(
do {
responseData = await circleciApiRequest.call(this, method, resource, body, query);
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
query['page-token'] = responseData.next_page_token;
} while (responseData.next_page_token !== undefined && responseData.next_page_token !== null);
return returnData;

View File

@ -212,7 +212,7 @@ export class CiscoWebex implements INodeType {
responseData = await webexApiRequest.call(this, 'POST', '/messages', body);
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
} else if (operation === 'delete') {
@ -240,7 +240,7 @@ export class CiscoWebex implements INodeType {
const endpoint = `/messages/${messageId}`;
responseData = await webexApiRequest.call(this, 'GET', endpoint);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
} else if (operation === 'getAll') {
@ -274,7 +274,7 @@ export class CiscoWebex implements INodeType {
responseData = responseData.items;
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData.items),
this.helpers.returnJsonArray(responseData.items as IDataObject[]),
{ itemData: { item: i } },
);
} else if (operation === 'update') {
@ -302,7 +302,7 @@ export class CiscoWebex implements INodeType {
responseData = await webexApiRequest.call(this, 'PUT', endpoint, body);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -342,7 +342,7 @@ export class CiscoWebex implements INodeType {
responseData = await webexApiRequest.call(this, 'POST', '/meetings', body);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -393,7 +393,7 @@ export class CiscoWebex implements INodeType {
{ headers },
);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -433,7 +433,7 @@ export class CiscoWebex implements INodeType {
responseData = responseData.items;
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
@ -491,13 +491,13 @@ export class CiscoWebex implements INodeType {
responseData = await webexApiRequest.call(this, 'PUT', `/meetings/${meetingId}`, body);
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
}
}
returnData.push(...responseData);
returnData.push(...(responseData as INodeExecutionData[]));
} catch (error) {
if (this.continueOnFail()) {
returnData.push({ error: error.toString(), json: {}, itemIndex: i });

View File

@ -7,6 +7,7 @@ import type {
IDataObject,
INodeProperties,
IWebhookFunctions,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
@ -35,7 +36,7 @@ export async function webexApiRequest(
if (Object.keys(option).length !== 0) {
options = Object.assign({}, options, option);
}
if (Object.keys(body).length === 0) {
if (Object.keys(body as IDataObject).length === 0) {
delete options.body;
}
if (Object.keys(qs).length === 0) {
@ -46,7 +47,7 @@ export async function webexApiRequest(
tokenType: 'Bearer',
});
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -73,7 +74,7 @@ export async function webexApiRequestAllItems(
if (responseData.headers.link) {
uri = responseData.headers.link.split(';')[0].replace('<', '').replace('>', '');
}
returnData.push.apply(returnData, responseData.body[propertyName]);
returnData.push.apply(returnData, responseData.body[propertyName] as IDataObject[]);
} while (responseData.headers.link?.includes('rel="next"'));
return returnData;
}

View File

@ -130,8 +130,8 @@ export class CitrixAdc implements INodeType {
const file = systemfile[0];
const binaryData = await this.helpers.prepareBinaryData(
Buffer.from(file.filecontent, 'base64'),
file.filename,
Buffer.from(file.filecontent as string, 'base64'),
file.filename as string,
);
responseData = {

View File

@ -153,7 +153,7 @@ export class Clearbit implements INodeType {
}
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -7,7 +7,7 @@ import type {
ILoadOptionsFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function clearbitApiRequest(
@ -31,12 +31,12 @@ export async function clearbitApiRequest(
json: true,
};
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -1625,7 +1625,7 @@ export class ClickUp implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -338,7 +338,7 @@ export class ClickUpTrigger implements INodeType {
return {};
}
return {
workflowData: [this.helpers.returnJsonArray(req.body)],
workflowData: [this.helpers.returnJsonArray(req.body as IDataObject)],
};
}
}

View File

@ -8,7 +8,7 @@ import type {
IWebhookFunctions,
} from 'n8n-core';
import type { IDataObject, IOAuth2Options } from 'n8n-workflow';
import type { IDataObject, IOAuth2Options, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function clickupApiRequest(
@ -56,7 +56,7 @@ export async function clickupApiRequest(
);
}
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -76,7 +76,7 @@ export async function clickupApiRequestAllItems(
do {
responseData = await clickupApiRequest.call(this, method, resource, body, query);
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
query.page++;
if (query.limit && query.limit <= returnData.length) {
return returnData;

View File

@ -836,7 +836,7 @@ export class Clockify implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -49,7 +49,7 @@ export async function clockifyApiRequestAllItems(
do {
responseData = await clockifyApiRequest.call(this, method, endpoint, body, query);
returnData.push.apply(returnData, responseData);
returnData.push.apply(returnData, responseData as IDataObject[]);
if (query.limit && returnData.length >= query.limit) {
return returnData;

View File

@ -160,9 +160,12 @@ export class Cloudflare implements INodeType {
}
returnData.push(
...this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), {
itemData: { item: i },
}),
...this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData as IDataObject[]),
{
itemData: { item: i },
},
),
);
} catch (error) {
if (this.continueOnFail()) {

View File

@ -7,7 +7,7 @@ import type {
IPollFunctions,
} from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function cloudflareApiRequest(
@ -36,7 +36,7 @@ export async function cloudflareApiRequest(
}
return await this.helpers.requestWithAuthentication.call(this, 'cloudflareApi', options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -56,7 +56,7 @@ export async function cloudflareApiRequestAllItems(
do {
responseData = await cloudflareApiRequest.call(this, method, endpoint, body, query);
query.page++;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData.result_info.total_pages !== responseData.result_info.page);
return returnData;
}

View File

@ -1,5 +1,5 @@
import type { IExecuteFunctions, IExecuteSingleFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { jsonParse, NodeApiError } from 'n8n-workflow';
import type { OptionsWithUri } from 'request';
@ -29,14 +29,14 @@ export async function cockpitApiRequest(
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}

View File

@ -6,6 +6,7 @@ import type {
INodePropertyOptions,
INodeType,
INodeTypeDescription,
JsonObject,
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import { codaApiRequest, codaApiRequestAllItems } from './GenericFunctions';
@ -331,13 +332,16 @@ export class Coda implements INodeType {
responseData = await codaApiRequest.call(this, 'GET', endpoint, {}, qs);
if (options.rawData === true) {
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
} else {
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray({ id: responseData.id, ...responseData.values }),
this.helpers.returnJsonArray({
id: responseData.id as string,
...(responseData.values as IDataObject),
}),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -400,13 +404,14 @@ export class Coda implements INodeType {
if (this.continueOnFail()) {
return [this.helpers.returnJsonArray({ error: error.message })];
}
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
if (options.rawData === true) {
return [this.helpers.returnJsonArray(responseData)];
return [this.helpers.returnJsonArray(responseData as IDataObject[])];
} else {
for (const item of responseData) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
returnData.push({
id: item.id,
...item.values,
@ -456,7 +461,7 @@ export class Coda implements INodeType {
const columnId = this.getNodeParameter('columnId', i) as string;
const endpoint = `/docs/${docId}/tables/${tableId}/rows/${rowId}/buttons/${columnId}`;
responseData = await codaApiRequest.call(this, 'POST', endpoint, {});
returnData.push(responseData);
returnData.push(responseData as INodeExecutionData);
} catch (error) {
if (this.continueOnFail()) {
const executionErrorData = this.helpers.constructExecutionMetaData(
@ -481,7 +486,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/tables/${tableId}/columns/${columnId}`;
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -515,7 +520,7 @@ export class Coda implements INodeType {
responseData = responseData.items;
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -544,7 +549,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/formulas/${formulaId}`;
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -577,7 +582,7 @@ export class Coda implements INodeType {
responseData = responseData.items;
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -606,7 +611,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/controls/${controlId}`;
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -639,7 +644,7 @@ export class Coda implements INodeType {
responseData = responseData.items;
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -667,7 +672,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/tables/${viewId}`;
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -689,7 +694,7 @@ export class Coda implements INodeType {
responseData = responseData.items;
}
responseData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...responseData);
@ -746,13 +751,14 @@ export class Coda implements INodeType {
if (this.continueOnFail()) {
return [this.helpers.returnJsonArray({ error: error.message })];
}
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
if (options.rawData === true) {
return [this.helpers.returnJsonArray(responseData)];
return [this.helpers.returnJsonArray(responseData as IDataObject[])];
} else {
for (const item of responseData) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
returnData.push({
id: item.id,
...item.values,
@ -771,7 +777,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}`;
responseData = await codaApiRequest.call(this, 'DELETE', endpoint);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -800,7 +806,7 @@ export class Coda implements INodeType {
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}/buttons/${columnId}`;
responseData = await codaApiRequest.call(this, 'POST', endpoint);
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);
returnData.push(...executionData);
@ -833,7 +839,7 @@ export class Coda implements INodeType {
responseData = responseData.items;
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -1,6 +1,6 @@
import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, IExecuteSingleFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function codaApiRequest(
@ -24,14 +24,14 @@ export async function codaApiRequest(
json: true,
};
options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) {
if (Object.keys(options.body as IDataObject).length === 0) {
delete options.body;
}
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -60,7 +60,7 @@ export async function codaApiRequestAllItems(
responseData = await codaApiRequest.call(this, method, resource, body, query, uri);
uri = responseData.nextPageLink;
// @ts-ignore
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (responseData.nextPageLink !== undefined && responseData.nextPageLink !== '');
return returnData;

View File

@ -6,7 +6,13 @@ import { ExecutionError } from './ExecutionError';
import type { CodeNodeMode } from './utils';
import { isObject, REQUIRED_N8N_ITEM_KEYS } from './utils';
import type { IExecuteFunctions, IWorkflowDataProxyData, WorkflowExecuteMode } from 'n8n-workflow';
import type {
IDataObject,
IExecuteFunctions,
INodeExecutionData,
IWorkflowDataProxyData,
WorkflowExecuteMode,
} from 'n8n-workflow';
export class Sandbox extends NodeVM {
private jsCode = '';
@ -59,6 +65,7 @@ export class Sandbox extends NodeVM {
error.message = (quoted as string) + '. Did you mean `$input.all()`?';
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
throw new ExecutionError(error);
}
@ -82,7 +89,7 @@ export class Sandbox extends NodeVM {
* item keys to be wrapped in `json` when normalizing items below.
*/
const mustHaveTopLevelN8nKey = executionResult.some((item) =>
Object.keys(item).find((key) => REQUIRED_N8N_ITEM_KEYS.has(key)),
Object.keys(item as IDataObject).find((key) => REQUIRED_N8N_ITEM_KEYS.has(key)),
);
for (const item of executionResult) {
@ -95,7 +102,7 @@ export class Sandbox extends NodeVM {
}
if (mustHaveTopLevelN8nKey) {
Object.keys(item).forEach((key) => {
Object.keys(item as IDataObject).forEach((key) => {
if (REQUIRED_N8N_ITEM_KEYS.has(key)) return;
throw new ValidationError({
message: `Unknown top-level item key: ${key}`,
@ -131,7 +138,7 @@ export class Sandbox extends NodeVM {
}
}
return normalizeItems(executionResult);
return normalizeItems(executionResult as INodeExecutionData[]);
}
private async runCodeEachItem() {
@ -170,6 +177,7 @@ export class Sandbox extends NodeVM {
error.message = (quoted as string) + '. Did you mean `$input.item.json`?';
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
throw new ExecutionError(error, this.itemIndex);
}
@ -203,7 +211,7 @@ export class Sandbox extends NodeVM {
// and another top-level key is unrecognized, then the user mis-added a property
// directly on the item, when they intended to add it on the `json` property
Object.keys(executionResult).forEach((key) => {
Object.keys(executionResult as IDataObject).forEach((key) => {
if (REQUIRED_N8N_ITEM_KEYS.has(key)) return;
throw new ValidationError({

View File

@ -369,7 +369,7 @@ export class CoinGecko implements INodeType {
const marketCaps = respData.market_caps[idx][1];
const totalVolume = respData.total_volumes[idx][1];
responseData.push({
time: moment(time).toISOString(),
time: moment(time as string).toISOString(),
price,
marketCaps,
totalVolume,
@ -397,7 +397,7 @@ export class CoinGecko implements INodeType {
for (let idx = 0; idx < responseData.length; idx++) {
const [time, open, high, low, close] = responseData[idx];
responseData[idx] = {
time: moment(time).toISOString(),
time: moment(time as string).toISOString(),
open,
high,
low,
@ -473,7 +473,7 @@ export class CoinGecko implements INodeType {
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -2,7 +2,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, IExecuteSingleFunctions, ILoadOptionsFunctions } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function coinGeckoApiRequest(
@ -30,14 +30,14 @@ export async function coinGeckoApiRequest(
options = Object.assign({}, options, option);
try {
if (Object.keys(body).length === 0) {
if (Object.keys(body as IDataObject).length === 0) {
delete options.body;
}
//@ts-ignore
return await this.helpers.request.call(this, options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -64,7 +64,7 @@ export async function coinGeckoRequestAllItems(
if (propertyName !== '') {
respData = responseData[propertyName];
}
returnData.push.apply(returnData, respData);
returnData.push.apply(returnData, respData as IDataObject[]);
} while (respData.length !== 0);
return returnData;

View File

@ -201,7 +201,7 @@ export class Contentful implements INodeType {
const assets: IDataObject[] = [];
responseData.map((asset: any) => {
assets.push(asset.fields);
assets.push(asset.fields as IDataObject);
});
responseData = assets;
}
@ -221,7 +221,7 @@ export class Contentful implements INodeType {
const assets: IDataObject[] = [];
responseData.map((asset: any) => {
assets.push(asset.fields);
assets.push(asset.fields as IDataObject);
});
responseData = assets;
}
@ -300,7 +300,7 @@ export class Contentful implements INodeType {
const assets: IDataObject[] = [];
responseData.map((asset: any) => {
assets.push(asset.fields);
assets.push(asset.fields as IDataObject);
});
responseData = assets;
}
@ -320,7 +320,7 @@ export class Contentful implements INodeType {
const assets: IDataObject[] = [];
responseData.map((asset: any) => {
assets.push(asset.fields);
assets.push(asset.fields as IDataObject);
});
responseData = assets;
}
@ -359,7 +359,7 @@ export class Contentful implements INodeType {
}
}
const executionData = this.helpers.constructExecutionMetaData(
this.helpers.returnJsonArray(responseData),
this.helpers.returnJsonArray(responseData as IDataObject[]),
{ itemData: { item: i } },
);
returnData.push(...executionData);

View File

@ -2,7 +2,7 @@ import type { IExecuteFunctions, IExecuteSingleFunctions, ILoadOptionsFunctions
import type { OptionsWithUri } from 'request';
import type { IDataObject } from 'n8n-workflow';
import type { IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export async function contentfulApiRequest(
@ -36,7 +36,7 @@ export async function contentfulApiRequest(
try {
return await this.helpers.request(options);
} catch (error) {
throw new NodeApiError(this.getNode(), error);
throw new NodeApiError(this.getNode(), error as JsonObject);
}
}
@ -59,7 +59,7 @@ export async function contenfulApiRequestAllItems(
do {
responseData = await contentfulApiRequest.call(this, method, resource, body, query);
query.skip = (query.skip + 1) * query.limit;
returnData.push.apply(returnData, responseData[propertyName]);
returnData.push.apply(returnData, responseData[propertyName] as IDataObject[]);
} while (returnData.length < responseData.total);
return returnData;

Some files were not shown because too many files have changed in this diff Show More