UNPKG

claire-framework

Version:

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

64 lines 4.79 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 }); const AbstractCacheAdapter_1 = require("../cache/AbstractCacheAdapter"); class DefaultInMemoryCacheAdapter extends AbstractCacheAdapter_1.AbstractCacheAdapter { constructor() { super(); this.hashmap = new Map(); this.countdownArray = []; setInterval(() => { for (let i = this.countdownArray.length - 1; i >= 0; i--) { let e = this.countdownArray[i]; e.expireSecond -= 1; if (e.expireSecond <= 0) { this.hashmap.delete(e.key); this.countdownArray = [ ...this.countdownArray.slice(0, i), ...this.countdownArray.slice(i + 1), ]; } } }, 1000); } isPersistent() { return false; } getCache(key) { return __awaiter(this, void 0, void 0, function* () { return this.hashmap.get(key); }); } setCache(key, value, expireAfterSecond) { return __awaiter(this, void 0, void 0, function* () { this.hashmap.set(key, value); if (!!expireAfterSecond) { let index = this.countdownArray.findIndex((e) => e.key === key); if (index >= 0) { this.countdownArray[index].expireSecond = expireAfterSecond; } else { this.countdownArray.push({ key, expireSecond: expireAfterSecond }); } } return; }); } flush() { return __awaiter(this, void 0, void 0, function* () { this.hashmap = new Map(); this.countdownArray = []; return; }); } } exports.DefaultInMemoryCacheAdapter = DefaultInMemoryCacheAdapter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEluTWVtb3J5Q2FjaGVBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2RlZmF1bHQtaW1wbGVtZW50YXRpb25zL0RlZmF1bHRJbk1lbW9yeUNhY2hlQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLHdFQUFtRTtBQUVuRSxNQUFhLDJCQUE0QixTQUFRLDJDQUFvQjtJQUtqRTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRzt3QkFDbEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNsQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3RDLENBQUM7aUJBQ0w7YUFDSjtRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTSxZQUFZO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVZLFFBQVEsQ0FBZ0IsR0FBVzs7WUFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQU0sQ0FBQztRQUN0QyxDQUFDO0tBQUE7SUFFWSxRQUFRLENBQWdCLEdBQVcsRUFBRSxLQUFRLEVBQUUsaUJBQTBCOztZQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLENBQUM7aUJBQy9EO3FCQUFNO29CQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7aUJBQ3BFO2FBQ0o7WUFDRCxPQUFPO1FBQ1gsQ0FBQztLQUFBO0lBRVksS0FBSzs7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDWCxDQUFDO0tBQUE7Q0FFSjtBQW5ERCxrRUFtREMifQ==