UNPKG

n8n-nodes-imap-ai

Version:

Simplified IMAP node for n8n with AI-agent support. Clean and modular email and mailbox management for automation workflows.

66 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImapExecuteHandler = void 0; const imapflow_1 = require("imapflow"); const operationRegistry_1 = require("./operations/operationRegistry"); class ImapExecuteHandler { static async execute(executeFunctions) { const items = executeFunctions.getInputData(); const returnData = []; const credentials = await executeFunctions.getCredentials('imap'); const client = new imapflow_1.ImapFlow({ host: credentials.host, port: credentials.port, secure: credentials.secure, auth: { user: credentials.user, pass: credentials.password, }, socketTimeout: 10 * 60 * 1000, connectionTimeout: 15 * 1000, greetingTimeout: 10 * 1000, }); try { await client.connect(); for (let i = 0; i < items.length; i++) { const operation = executeFunctions.getNodeParameter('operation', i); try { const operationHandler = operationRegistry_1.OperationRegistry.getOperation(operation); console.log(`Executing operation: ${operation}`); const result = await operationHandler.execute(executeFunctions, client, i); console.log('Operation result received:', typeof result, Array.isArray(result) ? 'Array' : 'Object'); if (Array.isArray(result)) { console.log('Processing array result, length:', result.length); returnData.push(...result); } else { console.log('Processing single result:', Object.keys(result).slice(0, 5)); returnData.push({ json: result }); } console.log('Total returnData items:', returnData.length); } catch (error) { if (executeFunctions.continueOnFail()) { returnData.push({ json: { error: error.message }, pairedItem: { item: i }, }); } else { throw error; } } } } finally { try { await client.logout(); } catch (error) { } } return [returnData]; } } exports.ImapExecuteHandler = ImapExecuteHandler; //# sourceMappingURL=ImapExecuteHandler.js.map