uzen
Version:
General-purpose GraphQL subscription server library
26 lines (25 loc) • 978 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRedisPubSub = createRedisPubSub;
const ioredis_1 = __importDefault(require("ioredis"));
const graphql_yoga_1 = require("graphql-yoga");
const redis_event_target_1 = require("@graphql-yoga/redis-event-target");
function createRedisPubSub(redisConfig) {
const publishClient = new ioredis_1.default({
...redisConfig,
maxRetriesPerRequest: 20,
retryStrategy: (times) => {
const delay = Math.min(times * 50, 2000);
return delay;
},
});
const eventTarget = (0, redis_event_target_1.createRedisEventTarget)({
publishClient,
subscribeClient: publishClient.duplicate(),
});
const pubsub = (0, graphql_yoga_1.createPubSub)({ eventTarget });
return { pubsub };
}