ngforage
Version:
localForage bindings for Angular
30 lines • 3.22 kB
JavaScript
/** @internal */
export class CachedItemImpl {
data;
expires;
hasData;
constructor(data, expiryTime) {
this.data = data;
this.expires = new Date(typeof expiryTime === 'number' ? expiryTime : 0);
this.hasData = data != null;
}
get expired() {
return this.expiresIn === 0;
}
get expiresIn() {
return Math.max(0, this.expires.getTime() - Date.now());
}
toJSON() {
return {
data: this.data,
expired: this.expired,
expires: this.expires,
expiresIn: this.expiresIn,
hasData: this.hasData
};
}
toString() {
return JSON.stringify(this.toJSON());
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkLWl0ZW0taW1wbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nZm9yYWdlL3NyYy9saWIvY2FjaGUvY2FjaGVkLWl0ZW0taW1wbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxnQkFBZ0I7QUFDaEIsTUFBTSxPQUFPLGNBQWM7SUFNVTtJQUpuQixPQUFPLENBQU87SUFFZCxPQUFPLENBQVU7SUFFakMsWUFBbUMsSUFBTyxFQUFFLFVBQWtCO1FBQTNCLFNBQUksR0FBSixJQUFJLENBQUc7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFZLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtDYWNoZWRJdGVtfSBmcm9tICcuL2NhY2hlZC1pdGVtJztcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNsYXNzIENhY2hlZEl0ZW1JbXBsPFQ+IGltcGxlbWVudHMgQ2FjaGVkSXRlbTxUPiB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGV4cGlyZXM6IERhdGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGhhc0RhdGE6IGJvb2xlYW47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBkYXRhOiBULCBleHBpcnlUaW1lOiBudW1iZXIpIHtcbiAgICB0aGlzLmV4cGlyZXMgPSBuZXcgRGF0ZSh0eXBlb2YgPGFueT5leHBpcnlUaW1lID09PSAnbnVtYmVyJyA/IGV4cGlyeVRpbWUgOiAwKTtcbiAgICB0aGlzLmhhc0RhdGEgPSBkYXRhICE9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwaXJlc0luID09PSAwO1xuICB9XG5cbiAgcHVibGljIGdldCBleHBpcmVzSW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgoMCwgdGhpcy5leHBpcmVzLmdldFRpbWUoKSAtIERhdGUubm93KCkpO1xuICB9XG5cbiAgcHVibGljIHRvSlNPTigpOiBDYWNoZWRJdGVtPFQ+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgZXhwaXJlZDogdGhpcy5leHBpcmVkLFxuICAgICAgZXhwaXJlczogdGhpcy5leHBpcmVzLFxuICAgICAgZXhwaXJlc0luOiB0aGlzLmV4cGlyZXNJbixcbiAgICAgIGhhc0RhdGE6IHRoaXMuaGFzRGF0YVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy50b0pTT04oKSk7XG4gIH1cbn1cbiJdfQ==