UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

67 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseJsonIfPresent = parseJsonIfPresent; exports.cleanOutputForToolUse = cleanOutputForToolUse; const n8n_workflow_1 = require("n8n-workflow"); /** * Parse JSON when the 'Parse JSON Output' parameter is enabled * @param this - The execution context * @param index - The index of the node * @param response - The Airtop API response to parse * @returns The parsed output */ function parseJsonIfPresent(index, response) { const parseJsonOutput = this.getNodeParameter('additionalFields.parseJsonOutput', index, false); const outputJsonSchema = this.getNodeParameter('additionalFields.outputSchema', index, ''); if (!parseJsonOutput || !outputJsonSchema.startsWith('{')) { return response; } try { const output = JSON.parse(response.data?.modelResponse ?? ''); return { sessionId: response.sessionId, windowId: response.windowId, output, }; } catch (error) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Output is not a valid JSON'); } } /** * Clean up the output when used as a tool * @param output - The output to clean up * @returns The cleaned up output */ function cleanOutputForToolUse(output) { const getOutput = (executionData) => { // Return error message if (executionData.json?.errors?.length) { const errorMessage = executionData.json?.errors[0].message; return { output: `Error: ${errorMessage}`, }; } // Return output parsed from JSON if (executionData.json?.output) { return executionData.json?.output; } // Return model response if (executionData.json?.data?.modelResponse) { return { output: executionData.json?.data?.modelResponse, }; } // Return everything else return { output: { ...(executionData.json?.data ?? {}) }, }; }; return output.map((executionData) => ({ ...executionData, json: { ...getOutput(executionData), }, })); } //# sourceMappingURL=output.utils.js.map