UNPKG

ngx-store

Version:

Angular decorators to automagically keep variables in HTML5 LocalStorage, SessionStorage, cookies; injectable services for managing and listening to data changes and a bit more.

38 lines 4.28 kB
import { NgxStorage } from './storage'; export class SharedStorage extends NgxStorage { constructor() { super(); this.sharedMap = new Map(); delete this.externalChanges; } get type() { return 'sharedStorage'; } get length() { return this.getAllKeys().length; } key(index) { return this.getAllKeys()[index]; } getItem(key) { const value = this.sharedMap.get(key); return (value !== undefined) ? value : null; } removeItem(key) { this.sharedMap.delete(key); } setItem(key, value) { this.sharedMap.set(key, value); } clear() { this.sharedMap.clear(); } forEach(func) { return this.sharedMap.forEach((value, key) => func(value, key)); } getAllKeys() { return Array.from(this.sharedMap.keys()); } } export const sharedStorage = new SharedStorage(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3RvcmUvc3JjL2xpYi91dGlsaXR5L3N0b3JhZ2Uvc2hhcmVkLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd2QyxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFHM0M7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhBLGNBQVMsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUloRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBVztRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBc0M7UUFDbkQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVMsVUFBVTtRQUNsQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4U3RvcmFnZSB9IGZyb20gJy4vc3RvcmFnZSc7XG5pbXBvcnQgeyBTdG9yYWdlTmFtZSB9IGZyb20gJy4uL3dlYnN0b3JhZ2UudXRpbGl0eSc7XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRTdG9yYWdlIGV4dGVuZHMgTmd4U3RvcmFnZSB7XG4gIHByb3RlY3RlZCBzaGFyZWRNYXA6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBkZWxldGUgdGhpcy5leHRlcm5hbENoYW5nZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogU3RvcmFnZU5hbWUge1xuICAgIHJldHVybiAnc2hhcmVkU3RvcmFnZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEFsbEtleXMoKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMga2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEFsbEtleXMoKVtpbmRleF07XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNoYXJlZE1hcC5nZXQoa2V5KTtcbiAgICByZXR1cm4gKHZhbHVlICE9PSB1bmRlZmluZWQpID8gdmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNoYXJlZE1hcC5kZWxldGUoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaGFyZWRNYXAuc2V0KGtleSwgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhcmVkTWFwLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgZm9yRWFjaChmdW5jOiAodmFsdWU6IHN0cmluZywga2V5OiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLnNoYXJlZE1hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBmdW5jKHZhbHVlLCBrZXkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBbGxLZXlzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhcmVkTWFwLmtleXMoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNoYXJlZFN0b3JhZ2UgPSBuZXcgU2hhcmVkU3RvcmFnZSgpO1xuIl19