nestjs-redis-plus
Version:
A super-powered Nestjs Redis module
32 lines (31 loc) • 1.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSocketIoRedisEmitter = exports.createSocketIoRedisAdapter = void 0;
const redis_emitter_1 = require("@socket.io/redis-emitter");
const redis_adapter_1 = require("@socket.io/redis-adapter");
const redis_utils_1 = require("./common/redis.utils");
const socket_io_redis_utils_1 = require("./common/socket-io-redis.utils");
const createSocketIoRedisAdapter = (clientName, adapterOptions) => ({
provide: (0, socket_io_redis_utils_1.getAdapterToken)(clientName),
useFactory: async (client) => {
const pubClient = client.duplicate();
const subClient = client.duplicate();
if (pubClient.status !== "connecting")
await pubClient.connect();
if (subClient.status !== "connecting")
await subClient.connect();
const adapterConstructor = (0, redis_adapter_1.createAdapter)(pubClient, subClient, adapterOptions);
return adapterConstructor;
},
inject: [(0, redis_utils_1.getRedisToken)(clientName)],
});
exports.createSocketIoRedisAdapter = createSocketIoRedisAdapter;
const createSocketIoRedisEmitter = (clientName, emitterOptions, nsp) => ({
provide: (0, socket_io_redis_utils_1.getEmitterToken)(clientName),
useFactory: (client) => {
const emitter = new redis_emitter_1.Emitter(client, emitterOptions, nsp);
return emitter;
},
inject: [(0, redis_utils_1.getRedisToken)(clientName)],
});
exports.createSocketIoRedisEmitter = createSocketIoRedisEmitter;
;