Files
n8n-enterprise-unlocked/packages/cli/src/eventbus/message-event-bus-destination/message-event-bus-destination-from-db.ts
2025-04-30 10:31:28 +02:00

31 lines
1.4 KiB
TypeScript

import type { EventDestinations } from '@n8n/db';
import { Container } from '@n8n/di';
import { Logger } from 'n8n-core';
import { MessageEventBusDestinationTypeNames } from 'n8n-workflow';
import { MessageEventBusDestinationSentry } from './message-event-bus-destination-sentry.ee';
import { MessageEventBusDestinationSyslog } from './message-event-bus-destination-syslog.ee';
import { MessageEventBusDestinationWebhook } from './message-event-bus-destination-webhook.ee';
import type { MessageEventBusDestination } from './message-event-bus-destination.ee';
import type { MessageEventBus } from '../message-event-bus/message-event-bus';
export function messageEventBusDestinationFromDb(
eventBusInstance: MessageEventBus,
dbData: EventDestinations,
): MessageEventBusDestination | null {
const destinationData = dbData.destination;
if ('__type' in destinationData) {
switch (destinationData.__type) {
case MessageEventBusDestinationTypeNames.sentry:
return MessageEventBusDestinationSentry.deserialize(eventBusInstance, destinationData);
case MessageEventBusDestinationTypeNames.syslog:
return MessageEventBusDestinationSyslog.deserialize(eventBusInstance, destinationData);
case MessageEventBusDestinationTypeNames.webhook:
return MessageEventBusDestinationWebhook.deserialize(eventBusInstance, destinationData);
default:
Container.get(Logger).debug('MessageEventBusDestination __type unknown');
}
}
return null;
}