UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

Comprehensive n8n community node for Bitrix24 API integration with CRM, Tasks, Chat, Telephony, and more

58 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeExecutor = void 0; const ResourceHandlerFactory_1 = require("./handlers/ResourceHandlerFactory"); const FieldRegistry_1 = require("./FieldRegistry"); /** * Node Executor - Handles all dynamic logic * ELIMINATES CIRCULAR DEPENDENCIES through smart field loading */ class NodeExecutor { constructor(nodeInstance) { this.nodeInstance = nodeInstance; } /** * Main execution method */ async execute() { const items = this.getInputData(); const returnData = []; // Process each input item for (let itemIndex = 0; itemIndex < items.length; itemIndex++) { try { const resource = this.getNodeParameter("resource", itemIndex); // Create appropriate resource handler const handler = ResourceHandlerFactory_1.ResourceHandlerFactory.createHandler(resource, this, returnData, { debug: true, forceWebhook: false, }); // Process the operation const result = await handler.process(); returnData.push(...result); } catch (error) { // Handle errors gracefully if (this.continueOnFail()) { returnData.push({ json: { error: error.message }, error, pairedItem: { item: itemIndex }, }); } else { throw error; } } } return returnData; } /** * Get fields for a specific resource and operation */ static async getFieldsForOperation(resource, operation) { return FieldRegistry_1.FieldRegistry.getFieldsForOperation(resource, operation); } } exports.NodeExecutor = NodeExecutor; NodeExecutor.fieldRegistry = new FieldRegistry_1.FieldRegistry(); //# sourceMappingURL=NodeExecutor.js.map