diff --git a/packages/nodes-base/nodes/HttpRequest/GenericFunctions.ts b/packages/nodes-base/nodes/HttpRequest/GenericFunctions.ts new file mode 100644 index 000000000..59a64d413 --- /dev/null +++ b/packages/nodes-base/nodes/HttpRequest/GenericFunctions.ts @@ -0,0 +1,8 @@ +import { INodeExecutionData } from "n8n-workflow"; + +export const replaceNullValues = (item: INodeExecutionData) => { + if (item.json === null) { + item.json = {}; + } + return item; +}; diff --git a/packages/nodes-base/nodes/HttpRequest/HttpRequest.node.ts b/packages/nodes-base/nodes/HttpRequest/HttpRequest.node.ts index 48bdc02ac..46a9c3503 100644 --- a/packages/nodes-base/nodes/HttpRequest/HttpRequest.node.ts +++ b/packages/nodes-base/nodes/HttpRequest/HttpRequest.node.ts @@ -1,14 +1,10 @@ -import path from 'path'; import { IExecuteFunctions, } from 'n8n-core'; import { - IAuthenticate, IBinaryData, IDataObject, - ILoadOptionsFunctions, INodeExecutionData, - INodePropertyOptions, INodeType, INodeTypeDescription, NodeApiError, @@ -16,6 +12,7 @@ import { } from 'n8n-workflow'; import { OptionsWithUri } from 'request'; +import { replaceNullValues } from './GenericFunctions'; interface OptionData { name: string; @@ -919,8 +916,7 @@ export class HttpRequest implements INodeType { displayName: 'Query Paramters', }, }; - - const returnItems: INodeExecutionData[] = []; + let returnItems: INodeExecutionData[] = []; const requestPromises = []; for (let itemIndex = 0; itemIndex < items.length; itemIndex++) { const requestMethod = this.getNodeParameter('requestMethod', itemIndex) as string; @@ -1263,6 +1259,7 @@ export class HttpRequest implements INodeType { // Create a shallow copy of the binary data so that the old // data references which do not get changed still stay behind // but the incoming data does not get changed. + // @ts-ignore Object.assign(newItem.binary, items[itemIndex].binary); } @@ -1367,6 +1364,8 @@ export class HttpRequest implements INodeType { } } + returnItems = returnItems.map(replaceNullValues); + return this.prepareOutputData(returnItems); } }