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
JavaScript
;
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==