UNPKG

@tomei/sso

Version:
88 lines 3.54 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RedisService = void 0; const redis_1 = require("redis"); class RedisService { constructor() { } static init(client) { return __awaiter(this, void 0, void 0, function* () { if (!client) { if (!RedisService.client) { const host = process.env.REDIS_HOST; const password = process.env.REDIS_PASS; const port = process.env.REDIS_PORT; const isProduction = process.env.REDIS_HOST.includes('windows.net'); const redis = isProduction ? 'rediss' : 'redis'; const pass = password ? `:${password}@` : ''; console.log(`${redis}://${pass}${host}:${port}`); RedisService.client = client = (0, redis_1.createClient)({ url: `${redis}://${pass}${host}:${port}`, password: password, }); RedisService.client.on('error', (error) => { console.error('Redis error:', error); }); RedisService.client.on('connect', () => console.log('Redis connected')); RedisService.client.on('reconnecting', () => console.log('Redis reconnecting')); yield RedisService.client.connect(); } } else { RedisService.client = client; } return new RedisService(); }); } set(key_1, value_1) { return __awaiter(this, arguments, void 0, function* (key, value, expire = 3600 * 24 * 1) { try { const newList = typeof value === 'string' ? value : JSON.stringify(value); yield RedisService.client.setEx(key, expire, newList); } catch (error) { console.log(error); } }); } get(key) { return __awaiter(this, void 0, void 0, function* () { try { return yield RedisService.client.get(key); } catch (error) { throw error; } }); } del(key) { return __awaiter(this, void 0, void 0, function* () { try { yield RedisService.client.del(key); } catch (error) { throw error; } }); } static close() { return __awaiter(this, void 0, void 0, function* () { try { yield RedisService.client.disconnect(); } catch (error) { throw error; } }); } } exports.RedisService = RedisService; //# sourceMappingURL=redis.service.js.map