UNPKG

@spartacus/setup

Version:

Includes features that makes Spartacus and it's setup easier and streamlined.

46 lines 6.1 kB
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