fix: Always retain original errors in the error chain on NodeOperationError (#4951)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2022-12-16 18:47:20 +01:00 committed by GitHub
parent 323bd78067
commit 231257d081
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 11 deletions

View file

@ -604,7 +604,7 @@ export class FileMaker implements INodeType {
try {
returnData = await layoutsApiRequest.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `FileMaker Error: ${error}`);
throw new NodeOperationError(this.getNode(), error);
}
return returnData;
@ -620,7 +620,7 @@ export class FileMaker implements INodeType {
try {
layouts = await layoutsApiRequest.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `FileMaker Error: ${error}`);
throw new NodeOperationError(this.getNode(), error);
}
for (const layout of layouts) {
returnData.push({
@ -638,7 +638,7 @@ export class FileMaker implements INodeType {
try {
fields = await getFields.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `FileMaker Error: ${error}`);
throw new NodeOperationError(this.getNode(), error);
}
for (const field of fields) {
returnData.push({
@ -656,7 +656,7 @@ export class FileMaker implements INodeType {
try {
scripts = await getScripts.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `FileMaker Error: ${error}`);
throw new NodeOperationError(this.getNode(), error);
}
for (const script of scripts) {
if (!script.isFolder) {
@ -676,7 +676,7 @@ export class FileMaker implements INodeType {
try {
portals = await getPortals.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `FileMaker Error: ${error}`);
throw new NodeOperationError(this.getNode(), error);
}
Object.keys(portals).forEach((portal) => {
returnData.push({
@ -700,7 +700,7 @@ export class FileMaker implements INodeType {
try {
token = await getToken.call(this);
} catch (error) {
throw new NodeOperationError(this.getNode(), `Login fail: ${error}`);
throw new NodeOperationError(this.getNode(), new Error('Login fail', { cause: error }));
}
let requestOptions: OptionsWithUri;

View file

@ -426,7 +426,7 @@ export class JiraTrigger implements INodeType {
} catch (e) {
throw new NodeOperationError(
this.getNode(),
`Could not retrieve HTTP Query Auth credentials: ${e}`,
new Error('Could not retrieve HTTP Query Auth credentials', { cause: e }),
);
}
if (!httpQueryAuth.name && !httpQueryAuth.value) {

View file

@ -166,7 +166,9 @@ export const parseAndSetBodyJson = (
} catch (err) {
throw new NodeOperationError(
this.getNode(),
`The '${parameterName}' property must be valid JSON, but cannot be parsed: ${err}`,
new Error(`The '${parameterName}' property must be valid JSON, but cannot be parsed`, {
cause: err,
}),
);
}
return requestOptions;

View file

@ -180,7 +180,10 @@ export class NocoDB implements INodeType {
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
} catch (e) {
throw new NodeOperationError(this.getNode(), `Error while fetching projects! (${e})`);
throw new NodeOperationError(
this.getNode(),
new Error('Error while fetching projects!', { cause: e }),
);
}
},
// This only supports using the Project ID
@ -193,7 +196,10 @@ export class NocoDB implements INodeType {
const responseData = await apiRequest.call(this, requestMethod, endpoint, {}, {});
return responseData.list.map((i: IDataObject) => ({ name: i.title, value: i.id }));
} catch (e) {
throw new NodeOperationError(this.getNode(), `Error while fetching tables! (${e})`);
throw new NodeOperationError(
this.getNode(),
new Error('Error while fetching tables!', { cause: e }),
);
}
} else {
throw new NodeOperationError(this.getNode(), `No project selected!`);

View file

@ -104,7 +104,7 @@ export namespace SendInBlueNode {
return requestOptions;
} catch (err) {
throw new NodeOperationError(this.getNode(), `${err}`);
throw new NodeOperationError(this.getNode(), err);
}
}