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
JavaScript
;
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