UNPKG

layered-loader

Version:

Data loader with support for caching and fallback data sources

30 lines 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createGroupNotificationPair = createGroupNotificationPair; const node_crypto_1 = require("node:crypto"); const RedisGroupNotificationConsumer_1 = require("./RedisGroupNotificationConsumer"); const RedisGroupNotificationPublisher_1 = require("./RedisGroupNotificationPublisher"); const RedisNotificationFactory_1 = require("./RedisNotificationFactory"); const ioredis_1 = require("ioredis"); function createGroupNotificationPair(config) { const resolvedConsumer = (0, RedisNotificationFactory_1.isClient)(config.consumerRedis) ? config.consumerRedis : new ioredis_1.Redis(config.consumerRedis); const resolvedPublisher = (0, RedisNotificationFactory_1.isClient)(config.publisherRedis) ? config.publisherRedis : new ioredis_1.Redis(config.publisherRedis); const serverUuid = (0, node_crypto_1.randomUUID)(); if (resolvedPublisher === resolvedConsumer) { throw new Error('Same Redis client instance cannot be used both for publisher and for consumer, please create a separate connection'); } const consumer = new RedisGroupNotificationConsumer_1.RedisGroupNotificationConsumer(resolvedConsumer, { channel: config.channel, serverUuid, }); const publisher = new RedisGroupNotificationPublisher_1.RedisGroupNotificationPublisher(resolvedPublisher, { channel: config.channel, errorHandler: config.errorHandler, serverUuid, }); return { publisher, consumer, }; } //# sourceMappingURL=RedisGroupNotificationFactory.js.map