@chevre/domain
Version:
Chevre Domain Library for Node.js
64 lines (54 loc) • 2.32 kB
text/typescript
// tslint:disable:no-console no-magic-numbers no-null-keyword
import type * as Redis from 'redis';
const REDIS_PING_INTERVAL_MS: number = (typeof process.env.REDIS_PING_INTERVAL_MS === 'string')
? Number(process.env.REDIS_PING_INTERVAL_MS)
// tslint:disable-next-line:no-magic-numbers
: 30000;
const REDIS_HOST: string = String(process.env.REDIS_HOST);
const REDIS_PORT: number = Number(process.env.REDIS_PORT);
const REDIS_KEY: string = String(process.env.REDIS_KEY);
const redisClientOptions: Redis.RedisClientOptions<Redis.RedisDefaultModules, Record<string, never>, Record<string, never>> = {
socket: {
host: REDIS_HOST,
port: REDIS_PORT
// tls: (process.env.REDIS_TLS_SERVERNAME !== undefined) ? { servername: process.env.REDIS_TLS_SERVERNAME } : undefined
},
password: REDIS_KEY,
pingInterval: REDIS_PING_INTERVAL_MS,
disableOfflineQueue: false
};
let redis: typeof Redis | undefined;
async function createRedisClient(): Promise<Redis.RedisClientType> {
return new Promise<Redis.RedisClientType>(async (resolve, reject) => {
if (redis === undefined) {
redis = await import('redis');
}
const client = redis.createClient<Redis.RedisDefaultModules, Record<string, never>, Record<string, never>>(redisClientOptions)
.on('error', (err) => {
// tslint:disable-next-line:no-console
console.error('createRedisClient: client onError:', err);
reject(err);
})
.on('connect', () => {
resolve(client);
});
// client.on('ready', () => {
// console.error('Redis Client ready');
// });
await client.connect()
.catch((err) => {
// tslint:disable-next-line:no-console
console.error('createRedisClient: redisClient.connect:', err);
reject(new Error('createRedisClient: failed in creating connection'));
});
});
}
async function main() {
const redisClient = await createRedisClient();
console.log('redisClient created.', redisClient.options?.name);
const multi = await redisClient.multi();
const results = await multi.exec();
console.log(results);
}
main()
.catch(console.error);