UNPKG

claire-framework

Version:

- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)

87 lines 6.83 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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const redis_1 = __importDefault(require("redis")); const AbstractCacheAdapter_1 = require("../cache/AbstractCacheAdapter"); const ClaireError_1 = require("../system/ClaireError"); const errors_1 = require("../system/errors"); class DefaultRedisCacheAdapter extends AbstractCacheAdapter_1.AbstractCacheAdapter { constructor(serverUrl, namespace) { super(); this.serverUrl = serverUrl; this.namespace = namespace; } isPersistent() { return true; } init() { return __awaiter(this, void 0, void 0, function* () { this.redisClient = redis_1.default.createClient(this.serverUrl, { prefix: this.namespace, }); return yield new Promise((resolve, reject) => { this.redisClient.on("connect", (err) => { if (err) { return reject(new ClaireError_1.ClaireError(errors_1.CONNECTION_ERROR, err.stack || String(err))); } return resolve(); }); }); }); } setCache(key, value, expireAfterSecond) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { if (!!expireAfterSecond) { this.redisClient.set(key, JSON.stringify(value), "EX", expireAfterSecond, (err) => { if (err) { return reject(new ClaireError_1.ClaireError(errors_1.QUERY_ERROR, err.stack || String(err))); } return resolve(); }); } else { this.redisClient.set(key, JSON.stringify(value), (err) => { if (err) { return reject(new ClaireError_1.ClaireError(errors_1.QUERY_ERROR, err.stack || String(err))); } return resolve(); }); } }); }); } getCache(key) { return new Promise((resolve, reject) => { this.redisClient.get(key, (err, reply) => { if (err || (reply === null)) { return reject(new ClaireError_1.ClaireError(errors_1.QUERY_ERROR)); } return resolve(JSON.parse(reply)); }); }); } flush() { return new Promise((resolve, reject) => { this.redisClient.flushall("ASYNC", (err) => { if (!!err) { reject(err); } resolve(); }); }); } } exports.DefaultRedisCacheAdapter = DefaultRedisCacheAdapter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFJlZGlzQ2FjaGVBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2RlZmF1bHQtaW1wbGVtZW50YXRpb25zL0RlZmF1bHRSZWRpc0NhY2hlQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQix3RUFBbUU7QUFDbkUsdURBQWtEO0FBQ2xELDZDQUErRDtBQUUvRCxNQUFhLHdCQUF5QixTQUFRLDJDQUFvQjtJQU85RCxZQUFtQixTQUFpQixFQUFFLFNBQWlCO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRVksSUFBSTs7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLGVBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEQsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQ3pCLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ3hDLElBQUksR0FBRyxFQUFFO3dCQUNMLE9BQU8sTUFBTSxDQUFDLElBQUkseUJBQVcsQ0FBQyx5QkFBZ0IsRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzlFO29CQUNELE9BQU8sT0FBTyxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0tBQUE7SUFFWSxRQUFRLENBQWdCLEdBQVcsRUFBRSxLQUFRLEVBQUUsaUJBQTBCOztZQUNsRixPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtvQkFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7d0JBQ25GLElBQUksR0FBRyxFQUFFOzRCQUNMLE9BQU8sTUFBTSxDQUFDLElBQUkseUJBQVcsQ0FBQyxvQkFBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDekU7d0JBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxDQUFDLENBQUM7aUJBQ047cUJBQU07b0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTt3QkFDMUQsSUFBSSxHQUFHLEVBQUU7NEJBQ0wsT0FBTyxNQUFNLENBQUMsSUFBSSx5QkFBVyxDQUFDLG9CQUFXLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN6RTt3QkFDRCxPQUFPLE9BQU8sRUFBRSxDQUFDO29CQUNyQixDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztLQUFBO0lBRU0sUUFBUSxDQUFnQixHQUFXO1FBQ3RDLE9BQU8sSUFBSSxPQUFPLENBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBUSxFQUFFLEtBQWEsRUFBRSxFQUFFO2dCQUNsRCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRTtvQkFDekIsT0FBTyxNQUFNLENBQUMsSUFBSSx5QkFBVyxDQUFDLG9CQUFXLENBQUMsQ0FBQyxDQUFDO2lCQUMvQztnQkFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBTSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxLQUFLO1FBQ1IsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFO29CQUNQLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDZjtnQkFDRCxPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUo7QUF6RUQsNERBeUVDIn0=