UNPKG

ngx-uploadx

Version:
63 lines 7.09 kB
const HOUR = 1000 * 60 * 60; export class Store { prefix; ttl = 24 * HOUR; constructor(prefix = 'UPLOADX-v4.0-') { this.prefix = prefix; } set(key, value) { this.ttl && localStorage.setItem(this.prefix + key, JSON.stringify([value, Date.now() + this.ttl])); } get(key) { const item = localStorage.getItem(this.prefix + key); if (item) { try { const [value, expires] = JSON.parse(item); if (Date.now() < expires) { return value; } } catch { } this.delete(key); } return null; } delete(key) { localStorage.removeItem(this.prefix + key); } clear(maxAgeHours = 0) { this.ttl = maxAgeHours * HOUR; const now = Date.now(); this.keys().forEach(key => { const item = localStorage.getItem(key); if (item && maxAgeHours) { try { const [, expires] = JSON.parse(item); now > expires && localStorage.removeItem(key); return; } catch { } } localStorage.removeItem(key); }); } keys() { return Object.keys(localStorage).filter(key => key.indexOf(this.prefix) === 0); } } export const store = isLocalStorageAvailable() ? new Store() : new Map(); export function isLocalStorageAvailable() { try { const key = 'LocalStorageTest'; const value = 'value'; localStorage.setItem(key, value); const getValue = localStorage.getItem(key); localStorage.removeItem(key); return getValue === value; } catch { return false; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXBsb2FkeC9saWIvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFNUIsTUFBTSxPQUFPLEtBQUs7SUFFSztJQURiLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLFlBQXFCLFNBQVMsZUFBZTtRQUF4QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtJQUFHLENBQUM7SUFFakQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFRO1FBQ3ZCLElBQUksQ0FBQyxHQUFHO1lBQ04sWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDO2dCQUNILE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWdCLENBQUM7Z0JBQ3pELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO29CQUN6QixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztZQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBVztRQUNoQixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDO29CQUNILE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFnQixDQUFDO29CQUNwRCxHQUFHLEdBQUcsT0FBTyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzlDLE9BQU87Z0JBQ1QsQ0FBQztnQkFBQyxNQUFNLENBQUMsQ0FBQSxDQUFDO1lBQ1osQ0FBQztZQUNELFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sSUFBSTtRQUNWLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQWtCLENBQUM7QUFFekYsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7UUFDdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sUUFBUSxLQUFLLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEhPVVIgPSAxMDAwICogNjAgKiA2MDtcblxuZXhwb3J0IGNsYXNzIFN0b3JlPFQgPSBzdHJpbmc+IHtcbiAgcHJpdmF0ZSB0dGwgPSAyNCAqIEhPVVI7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHByZWZpeCA9ICdVUExPQURYLXY0LjAtJykge31cblxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy50dGwgJiZcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMucHJlZml4ICsga2V5LCBKU09OLnN0cmluZ2lmeShbdmFsdWUsIERhdGUubm93KCkgKyB0aGlzLnR0bF0pKTtcbiAgfVxuXG4gIGdldChrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICBjb25zdCBpdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5wcmVmaXggKyBrZXkpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBbdmFsdWUsIGV4cGlyZXNdID0gSlNPTi5wYXJzZShpdGVtKSBhcyBbVCwgbnVtYmVyXTtcbiAgICAgICAgaWYgKERhdGUubm93KCkgPCBleHBpcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIHt9XG4gICAgICB0aGlzLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGRlbGV0ZShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMucHJlZml4ICsga2V5KTtcbiAgfVxuXG4gIGNsZWFyKG1heEFnZUhvdXJzID0gMCk6IHZvaWQge1xuICAgIHRoaXMudHRsID0gbWF4QWdlSG91cnMgKiBIT1VSO1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgdGhpcy5rZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICBpZiAoaXRlbSAmJiBtYXhBZ2VIb3Vycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IFssIGV4cGlyZXNdID0gSlNPTi5wYXJzZShpdGVtKSBhcyBbVCwgbnVtYmVyXTtcbiAgICAgICAgICBub3cgPiBleHBpcmVzICYmIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGNhdGNoIHt9XG4gICAgICB9XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobG9jYWxTdG9yYWdlKS5maWx0ZXIoa2V5ID0+IGtleS5pbmRleE9mKHRoaXMucHJlZml4KSA9PT0gMCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHN0b3JlID0gaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSA/IG5ldyBTdG9yZSgpIDogbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxTdG9yYWdlQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9ICdMb2NhbFN0b3JhZ2VUZXN0JztcbiAgICBjb25zdCB2YWx1ZSA9ICd2YWx1ZSc7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgY29uc3QgZ2V0VmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgcmV0dXJuIGdldFZhbHVlID09PSB2YWx1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=