UNPKG

@couleetech/n8n-nodes-enlightenedmsp

Version:

n8n node for EnlightenedMSP ticketing and workflow automation

114 lines (113 loc) 4.29 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnlightenedEvent = void 0; class EnlightenedEvent { constructor() { this.description = { displayName: 'Enlightened Event Trigger', name: 'enlightenedEvent', icon: 'file:enlightenedmsp.svg', group: ['trigger'], version: 1, description: 'Triggers when an event is received from EnlightenedMSP', defaults: { name: 'Enlightened Event Trigger', }, inputs: [], outputs: ["main"], credentials: [ { name: 'enlightenedMspNats', required: true, }, ], properties: [ { displayName: 'Namespace', name: 'namespace', type: 'string', default: '', required: true, description: 'The namespace for the NATS event (e.g., "production", "staging")', }, { displayName: 'Queue Group', name: 'queue', type: 'string', default: '', required: false, description: 'Optional queue group name for load balancing', }, { displayName: 'Event', name: 'event', type: 'string', default: '', required: true, description: 'The event to trigger on', }, ], }; } async trigger() { const namespace = this.getNodeParameter('namespace'); const queue = this.getNodeParameter('queue'); const event = this.getNodeParameter('event'); const credentials = await this.getCredentials('enlightenedMspNats'); const { connect } = await Promise.resolve().then(() => __importStar(require('nats'))); const natsConnection = await connect({ servers: credentials.natsServer, user: credentials.username, pass: credentials.password, token: credentials.token, }); const subject = `${namespace}.${event}`; const subscription = queue ? natsConnection.subscribe(subject, { queue }) : natsConnection.subscribe(subject); (async () => { for await (const message of subscription) { try { const payload = JSON.parse(new TextDecoder().decode(message.data)); this.emit([this.helpers.returnJsonArray([payload])]); } catch (error) { console.error('Error processing NATS message:', error); } } })(); async function closeFunction() { await subscription.unsubscribe(); await natsConnection.close(); } return { closeFunction, async manualTriggerFunction() { }, }; } } exports.EnlightenedEvent = EnlightenedEvent;