कारतोफ्फेलस्क्रिप्ट™
2023-09-06 12:38:37 +02:00
committed by GitHub
parent 25dc4d7825
commit 273d0913fe
11 changed files with 388 additions and 111 deletions

View File

@@ -1,3 +1,5 @@
import type { Readable } from 'stream';
import type {
IExecuteFunctions,
IDataObject,
@@ -632,7 +634,7 @@ export class HttpRequestV1 implements INodeType {
oAuth2Api = await this.getCredentials('oAuth2Api');
} catch {}
let requestOptions: OptionsWithUri;
let requestOptions: OptionsWithUri & { useStream?: boolean };
let setUiParameter: IDataObject;
const uiParameters: IDataObject = {
@@ -873,6 +875,7 @@ export class HttpRequestV1 implements INodeType {
if (responseFormat === 'file') {
requestOptions.encoding = null;
requestOptions.useStream = true;
if (options.bodyContentType !== 'raw') {
requestOptions.body = JSON.stringify(requestOptions.body);
@@ -885,6 +888,7 @@ export class HttpRequestV1 implements INodeType {
}
} else if (options.bodyContentType === 'raw') {
requestOptions.json = false;
requestOptions.useStream = true;
} else {
requestOptions.json = true;
}
@@ -991,7 +995,6 @@ export class HttpRequestV1 implements INodeType {
response = response.value;
const options = this.getNodeParameter('options', itemIndex, {});
const url = this.getNodeParameter('url', itemIndex) as string;
const fullResponse = !!options.fullResponse;
@@ -1014,8 +1017,7 @@ export class HttpRequestV1 implements INodeType {
Object.assign(newItem.binary, items[itemIndex].binary);
}
const fileName = url.split('/').pop();
let binaryData: Buffer | Readable;
if (fullResponse) {
const returnItem: IDataObject = {};
for (const property of fullResponseProperties) {
@@ -1026,20 +1028,13 @@ export class HttpRequestV1 implements INodeType {
}
newItem.json = returnItem;
newItem.binary![dataPropertyName] = await this.helpers.prepareBinaryData(
response!.body as Buffer,
fileName,
);
binaryData = response!.body;
} else {
newItem.json = items[itemIndex].json;
newItem.binary![dataPropertyName] = await this.helpers.prepareBinaryData(
response! as Buffer,
fileName,
);
binaryData = response;
}
newItem.binary![dataPropertyName] = await this.helpers.prepareBinaryData(binaryData);
returnItems.push(newItem);
} else if (responseFormat === 'string') {
const dataPropertyName = this.getNodeParameter('dataPropertyName', 0);