nestjs-redis-plus
Version:
A super-powered Nestjs Redis module
37 lines (36 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRedisServiceProvider = exports.createRedisProvider = exports.createRedisNameProvider = void 0;
const common_1 = require("@nestjs/common");
const ioredis_1 = require("ioredis");
const redis_constants_1 = require("./redis.constants");
const redis_utils_1 = require("./common/redis.utils");
const redis_service_1 = require("./redis.service");
const createRedisNameProvider = (token) => ({
provide: redis_constants_1.REDIS_NAME_TOKEN,
useValue: token,
});
exports.createRedisNameProvider = createRedisNameProvider;
const createRedisProvider = (token) => ({
provide: token,
useFactory: async (options) => {
const logger = new common_1.Logger(`RedisModule:${String(token)}`);
if (options.url)
options = { ...(0, redis_utils_1.parseRedisUrl)(options.url), ...options };
const miniUrl = `${options.tls ? "rediss" : "redis"}://${options.host}:${options.port}`;
const client = new ioredis_1.default(options);
client.once("ready", () => logger.log(`Established connection to ${miniUrl}`));
client.on("error", (err) => logger.error(`An error occured: ${err.message}`));
logger.log(`Establishing connection to ${miniUrl} ...`);
if (client.status !== "connecting")
await client.connect();
return client;
},
inject: [redis_constants_1.REDIS_MODULE_OPTIONS_TOKEN],
});
exports.createRedisProvider = createRedisProvider;
const createRedisServiceProvider = (token) => ({
provide: token,
useClass: redis_service_1.RedisService,
});
exports.createRedisServiceProvider = createRedisServiceProvider;
;