n8n-nodes-base
Version:
Base nodes of n8n
139 lines • 5.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExecutionData = void 0;
const n8n_workflow_1 = require("n8n-workflow");
class ExecutionData {
description = {
displayName: 'Execution Data',
name: 'executionData',
icon: 'fa:tasks',
group: ['input'],
iconColor: 'light-green',
version: [1, 1.1],
description: 'Add execution data for search',
defaults: {
name: 'Execution Data',
color: '#29A568',
},
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
properties: [
{
displayName: "Save important data using this node. It will be displayed on each execution for easy reference and you can filter by it.<br />Filtering is available on Pro and Enterprise plans. <a href='https://n8n.io/pricing/' target='_blank'>More Info</a>",
name: 'notice',
type: 'notice',
default: '',
},
{
displayName: 'Operation',
name: 'operation',
type: 'options',
default: 'save',
noDataExpression: true,
options: [
{
name: 'Save Highlight Data (for Search/review)',
value: 'save',
action: 'Save Highlight Data (for search/review)',
},
],
},
{
displayName: 'Data to Save',
name: 'dataToSave',
placeholder: 'Add Saved Field',
type: 'fixedCollection',
typeOptions: {
multipleValueButtonText: 'Add Saved Field',
multipleValues: true,
},
displayOptions: {
show: {
operation: ['save'],
},
},
default: {},
options: [
{
displayName: 'Values',
name: 'values',
values: [
{
displayName: 'Key',
name: 'key',
type: 'string',
default: '',
placeholder: 'e.g. myKey',
requiresDataPath: 'single',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
placeholder: 'e.g. myValue',
},
],
},
],
},
],
hints: [
{
type: 'warning',
message: 'Some keys are longer than 50 characters. They will be truncated.',
displayCondition: '={{ $parameter.dataToSave.values.some((x) => x.key.length > 50) }}',
whenToDisplay: 'beforeExecution',
location: 'outputPane',
},
{
type: 'warning',
message: 'Some values are longer than 512 characters. They will be truncated.',
displayCondition: '={{ $parameter.dataToSave.values.some((x) => x.value.length > 512) }}',
whenToDisplay: 'beforeExecution',
location: 'outputPane',
},
],
};
async execute() {
const dataProxy = this.getWorkflowDataProxy(0);
const nodeVersion = this.getNode().typeVersion;
const items = this.getInputData();
const operations = this.getNodeParameter('operation', 0);
const returnData = [];
if (operations === 'save') {
for (let i = 0; i < items.length; i++) {
try {
const dataToSave = this.getNodeParameter('dataToSave', i, {}).values || [];
const values = dataToSave.reduce((acc, { key, value }) => {
const valueToSet = value ? value : nodeVersion >= 1.1 ? '' : value;
acc[key] = valueToSet;
return acc;
}, {});
dataProxy.$execution.customData.setAll(values);
returnData.push(items[i]);
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({
json: {
error: error.message,
},
pairedItem: {
item: i,
},
});
continue;
}
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error);
}
}
}
else {
return [items];
}
return [returnData];
}
}
exports.ExecutionData = ExecutionData;
//# sourceMappingURL=ExecutionData.node.js.map