@spartacus/setup
Version:
Includes features that makes Spartacus and it's setup easier and streamlined.
46 lines • 6.1 kB
JavaScript
export class RenderingCache {
constructor(options) {
this.options = options;
this.renders = new Map();
}
setAsRendering(key) {
this.renders.set(key, { rendering: true });
}
isRendering(key) {
var _a;
return !!((_a = this.renders.get(key)) === null || _a === void 0 ? void 0 : _a.rendering);
}
store(key, err, html) {
var _a, _b;
const entry = { err, html };
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.ttl) {
entry.time = Date.now();
}
if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.cacheSize) {
this.renders.delete(key);
if (this.renders.size >= this.options.cacheSize) {
this.renders.delete(this.renders.keys().next().value);
}
}
this.renders.set(key, entry);
}
get(key) {
return this.renders.get(key);
}
clear(key) {
this.renders.delete(key);
}
isReady(key) {
const entry = this.renders.get(key);
const isRenderPresent = (entry === null || entry === void 0 ? void 0 : entry.html) || (entry === null || entry === void 0 ? void 0 : entry.err);
return isRenderPresent && this.isFresh(key);
}
isFresh(key) {
var _a, _b, _c, _d;
if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.ttl)) {
return true;
}
return Date.now() - ((_c = (_b = this.renders.get(key)) === null || _b === void 0 ? void 0 : _b.time) !== null && _c !== void 0 ? _c : 0) < ((_d = this.options) === null || _d === void 0 ? void 0 : _d.ttl);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLWNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vY29yZS1saWJzL3NldHVwL3Nzci9vcHRpbWl6ZWQtZW5naW5lL3JlbmRlcmluZy1jYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFvQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUYxQyxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFFQyxDQUFDO0lBRXhELGNBQWMsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVzs7UUFDckIsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQywwQ0FBRSxTQUFTLENBQUEsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVcsRUFBRSxHQUFrQixFQUFFLElBQWE7O1FBQ2xELE1BQU0sS0FBSyxHQUFtQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1QyxJQUFJLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsR0FBRyxFQUFFO1lBQ3JCLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFNBQVMsRUFBRTtZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0Y7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVc7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVc7UUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsTUFBTSxlQUFlLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxNQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxHQUFHLENBQUEsQ0FBQztRQUNsRCxPQUFPLGVBQWUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVzs7UUFDakIsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxHQUFHLENBQUEsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLDBDQUFFLElBQUksbUNBQUksQ0FBQyxDQUFDLElBQUcsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxHQUFHLENBQUEsQ0FBQztJQUM3RSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTc3JPcHRpbWl6YXRpb25PcHRpb25zIH0gZnJvbSAnLi9zc3Itb3B0aW1pemF0aW9uLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcmluZ0VudHJ5IHtcbiAgaHRtbD86IGFueTtcbiAgZXJyPzogYW55O1xuICB0aW1lPzogbnVtYmVyO1xuICByZW5kZXJpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVuZGVyaW5nQ2FjaGUge1xuICBwcm90ZWN0ZWQgcmVuZGVycyA9IG5ldyBNYXA8c3RyaW5nLCBSZW5kZXJpbmdFbnRyeT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM/OiBTc3JPcHRpbWl6YXRpb25PcHRpb25zKSB7fVxuXG4gIHNldEFzUmVuZGVyaW5nKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJzLnNldChrZXksIHsgcmVuZGVyaW5nOiB0cnVlIH0pO1xuICB9XG5cbiAgaXNSZW5kZXJpbmcoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJlbmRlcnMuZ2V0KGtleSk/LnJlbmRlcmluZztcbiAgfVxuXG4gIHN0b3JlKGtleTogc3RyaW5nLCBlcnI/OiBFcnJvciB8IG51bGwsIGh0bWw/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBlbnRyeTogUmVuZGVyaW5nRW50cnkgPSB7IGVyciwgaHRtbCB9O1xuICAgIGlmICh0aGlzLm9wdGlvbnM/LnR0bCkge1xuICAgICAgZW50cnkudGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnM/LmNhY2hlU2l6ZSkge1xuICAgICAgdGhpcy5yZW5kZXJzLmRlbGV0ZShrZXkpO1xuICAgICAgaWYgKHRoaXMucmVuZGVycy5zaXplID49IHRoaXMub3B0aW9ucy5jYWNoZVNpemUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJzLmRlbGV0ZSh0aGlzLnJlbmRlcnMua2V5cygpLm5leHQoKS52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucmVuZGVycy5zZXQoa2V5LCBlbnRyeSk7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcpOiBSZW5kZXJpbmdFbnRyeSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVycy5nZXQoa2V5KTtcbiAgfVxuXG4gIGNsZWFyKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5yZW5kZXJzLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgaXNSZWFkeShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5yZW5kZXJzLmdldChrZXkpO1xuICAgIGNvbnN0IGlzUmVuZGVyUHJlc2VudCA9IGVudHJ5Py5odG1sIHx8IGVudHJ5Py5lcnI7XG4gICAgcmV0dXJuIGlzUmVuZGVyUHJlc2VudCAmJiB0aGlzLmlzRnJlc2goa2V5KTtcbiAgfVxuXG4gIGlzRnJlc2goa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucz8udHRsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZS5ub3coKSAtICh0aGlzLnJlbmRlcnMuZ2V0KGtleSk/LnRpbWUgPz8gMCkgPCB0aGlzLm9wdGlvbnM/LnR0bDtcbiAgfVxufVxuIl19