UNPKG

@multiplatform.one/typegraphql

Version:
36 lines (33 loc) 918 B
import { __name } from "./chunk-SHUYVCID.js"; // src/pubSub.ts import { Repeater } from "@repeaterjs/repeater"; import PGPubSub from "pg-pubsub"; function createPgPubSub({ ...pgConfig }) { const pgPubSub = new PGPubSub(pgConfig); return { async publish(routingKey, ...args) { const payload = args[1] ?? args[0] ?? null; const topic = args[1] === void 0 ? routingKey : `${routingKey}:${args[0]}`; await pgPubSub.publish(topic, { payload }); }, subscribe(...[routingKey, id]) { const topic = id === void 0 ? routingKey : `${routingKey}:${id}`; return new Repeater(async (next, stop) => { await pgPubSub.addChannel(topic, (data) => { next(data.payload); }); stop.then(() => { pgPubSub.removeChannel(topic); }); }); } }; } __name(createPgPubSub, "createPgPubSub"); export { createPgPubSub };