UNPKG

@unchainedshop/plugins

Version:

Official plugin collection for the Unchained Engine with payment, delivery, and pricing adapters

38 lines (37 loc) 1.42 kB
import { setEmitAdapter } from '@unchainedshop/events'; import { createLogger } from '@unchainedshop/logger'; const logger = createLogger('unchained:eventbridge'); const EventBridgeEventEmitter = async ({ region, source, busName }) => { const { EventBridgeClient, PutEventsCommand } = await import('@aws-sdk/client-eventbridge'); const ebClient = new EventBridgeClient({ region }); return { publish: (eventName, payload) => { ebClient .send(new PutEventsCommand({ Entries: [ { Source: source, DetailType: eventName, EventBusName: busName, Detail: JSON.stringify(payload), }, ], })) .catch((e) => { logger.warn(e); }); }, subscribe: () => { throw new Error("You can't subscribe to EventBridge connected Events"); }, }; }; const { EVENT_BRIDGE_REGION, EVENT_BRIDGE_SOURCE, EVENT_BRIDGE_BUS_NAME } = process.env; if (EVENT_BRIDGE_REGION && EVENT_BRIDGE_SOURCE && EVENT_BRIDGE_BUS_NAME) { const eventBridgeAdapter = await EventBridgeEventEmitter({ source: EVENT_BRIDGE_SOURCE, region: EVENT_BRIDGE_REGION, busName: EVENT_BRIDGE_BUS_NAME, }); setEmitAdapter(eventBridgeAdapter); }