UNPKG

@unchainedshop/plugins

Version:

Because of a Typescript issue with upstream "postfinancecheckout", the Postfinance plugin has been disabled from transpilation, import the source ts files from src and enable node_module tsc or copy over the src/payment/postfinance-checkout to your projec

35 lines (28 loc) 1 kB
import { createClient } from '@redis/client'; import { setEmitAdapter, EmitAdapter } from '@unchainedshop/events'; const { REDIS_PORT = '6379', REDIS_HOST, REDIS_DB = '0' } = process.env; const subscribedEvents = new Set(); const RedisEventEmitter = (): EmitAdapter => { const redisPublisher = createClient({ url: `redis://${REDIS_HOST}:${REDIS_PORT}`, database: parseInt(REDIS_DB, 10), }); const redisSubscriber = createClient({ url: `redis://${REDIS_HOST}:${REDIS_PORT}`, database: parseInt(REDIS_DB, 10), }); return { publish: (eventName, payload) => redisPublisher.publish(eventName, JSON.stringify(payload)), subscribe: (eventName, callback) => { if (!subscribedEvents.has(eventName)) { redisSubscriber.subscribe(eventName, (payload) => { callback(JSON.parse(payload)); }); subscribedEvents.add(eventName); } }, }; }; if (REDIS_HOST && REDIS_PORT && REDIS_DB) { setEmitAdapter(RedisEventEmitter()); }