UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

64 lines (54 loc) 2.32 kB
// 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);