UNPKG

reiso

Version:
62 lines 4.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Subscriptions = require("graphql-subscriptions"); const RedisNRP = require("node-redis-pubsub"); const Config_1 = require("../../Modules/Config"); let nrp; const pubsub = new Subscriptions.PubSub(); let publishes = {}; function getPublishes() { return publishes; } exports.getPublishes = getPublishes; function cleanPublishes() { if (nrp) nrp.quit(); nrp = null; publishes = {}; } exports.cleanPublishes = cleanPublishes; class SubscriptionManager { constructor(name = 'Main') { this.name = name; this.publishes = publishes[name]; } init() { if (!nrp) nrp = new RedisNRP(Config_1.getConfig().redisPubSub[this.name]); if (this.publishes) { for (let name of this.publishes) { nrp.on(name, (data) => { pubsub.publish(name, data); }); } } } } exports.SubscriptionManager = SubscriptionManager; async function Publish(name, data, scope = 'Main') { if (!nrp) { nrp = new RedisNRP(Config_1.getConfig().redisPubSub[scope]); } nrp.publish(name, data); } exports.Publish = Publish; function Subscribe(name, filter, exceptionCheck) { if (filter) { return Subscriptions.withFilter(() => { if (exceptionCheck) { exceptionCheck(); } return pubsub.asyncIterator(name); }, filter); } else { return exceptionCheck ? Subscriptions.withFilter(() => { exceptionCheck(); return pubsub.asyncIterator(name); }, () => true) : () => pubsub.asyncIterator(name); } } exports.Subscribe = Subscribe; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3Vic2NyaXB0aW9uTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZXJ2ZXIvR3JhcGhRTC9TdWJzY3JpcHRpb25NYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdURBQXVEO0FBQ3ZELDhDQUE4QztBQUU5QyxpREFBaUQ7QUFFakQsSUFBSSxHQUFhLENBQUM7QUFDbEIsTUFBTSxNQUFNLEdBQXlCLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBRWhFLElBQUksU0FBUyxHQUFpQyxFQUFFLENBQUE7QUFDaEQ7SUFDSSxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRkQsb0NBRUM7QUFDRDtJQUNJLElBQUksR0FBRztRQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ1gsU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUNuQixDQUFDO0FBSkQsd0NBSUM7QUFFRDtJQUlJLFlBQVksT0FBZSxNQUFNO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxJQUFJO1FBQ1AsSUFBSSxDQUFDLEdBQUc7WUFBRSxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUMsa0JBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUM3QixHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7YUFDTjtTQUNKO0lBQ0wsQ0FBQztDQUNKO0FBbkJELGtEQW1CQztBQUVNLEtBQUssa0JBQWtCLElBQVksRUFBRSxJQUFTLEVBQUUsUUFBZ0IsTUFBTTtJQUN6RSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ04sR0FBRyxHQUFHLElBQUksUUFBUSxDQUFDLGtCQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUN0RDtJQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFMRCwwQkFLQztBQUVELG1CQUEwQixJQUF1QixFQUFFLE1BQTBCLEVBQUUsY0FBeUI7SUFDcEcsSUFBSSxNQUFNLEVBQUU7UUFDUixPQUFPLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksY0FBYyxFQUFFO2dCQUNoQixjQUFjLEVBQUUsQ0FBQzthQUNwQjtZQUNELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDZDtTQUFNO1FBQ0gsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xELGNBQWMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDckQ7QUFDTCxDQUFDO0FBZEQsOEJBY0MifQ==