UNPKG

ngx-webstorage

Version:

### Local and session storage - Angular service This library provides an easy to use service to manage the web storages (local and session) from your Angular application. It provides also two decorators to synchronize the component attributes and the web

30 lines 5.29 kB
import { noop } from '../../helpers/noop'; import { StorageKeyManager } from '../../helpers/storageKeyManager'; import { distinctUntilChanged, filter, shareReplay, switchMap } from 'rxjs/operators'; class SyncStorage { constructor(strategy) { this.strategy = strategy; } retrieve(key) { let value; this.strategy.get(StorageKeyManager.normalize(key)).subscribe((result) => value = typeof result === 'undefined' ? null : result); return value; } store(key, value) { this.strategy.set(StorageKeyManager.normalize(key), value).subscribe(noop); return value; } clear(key) { if (key !== undefined) this.strategy.del(StorageKeyManager.normalize(key)).subscribe(noop); else this.strategy.clear().subscribe(noop); } getStrategyName() { return this.strategy.name; } observe(key) { key = StorageKeyManager.normalize(key); return this.strategy.keyChanges.pipe(filter((changed) => changed === null || changed === key), switchMap(() => this.strategy.get(key)), distinctUntilChanged(), shareReplay({ refCount: true, bufferSize: 1 })); } } export { SyncStorage }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY1N0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtd2Vic3RvcmFnZS9zcmMvbGliL2NvcmUvdGVtcGxhdGVzL3N5bmNTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixNQUFNLFdBQVc7SUFDaEIsWUFBc0IsUUFBOEI7UUFBOUIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7SUFDcEQsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ25CLElBQUksS0FBVSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pJLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNFLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFZO1FBQ2pCLElBQUksR0FBRyxLQUFLLFNBQVM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDOztZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxLQUFZLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXZELE9BQU8sQ0FBQyxHQUFXO1FBQ2xCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssR0FBRyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN2QyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0gsQ0FBQztDQUVEO0FBRUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdG9yYWdlU3RyYXRlZ3l9IGZyb20gJy4uL2ludGVyZmFjZXMvc3RvcmFnZVN0cmF0ZWd5JztcbmltcG9ydCB7bm9vcH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wJztcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gJy4uL2ludGVyZmFjZXMvc3RvcmFnZVNlcnZpY2UnO1xuaW1wb3J0IHtTdG9yYWdlS2V5TWFuYWdlcn0gZnJvbSAnLi4vLi4vaGVscGVycy9zdG9yYWdlS2V5TWFuYWdlcic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNsYXNzIFN5bmNTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZVNlcnZpY2Uge1xuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RyYXRlZ3k6IFN0b3JhZ2VTdHJhdGVneTxhbnk+KSB7XG5cdH1cblxuXHRyZXRyaWV2ZShrZXk6IHN0cmluZyk6IGFueSB7XG5cdFx0bGV0IHZhbHVlOiBhbnk7XG5cdFx0dGhpcy5zdHJhdGVneS5nZXQoU3RvcmFnZUtleU1hbmFnZXIubm9ybWFsaXplKGtleSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB2YWx1ZSA9IHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHJlc3VsdCk7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG5cblx0c3RvcmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuXHRcdHRoaXMuc3RyYXRlZ3kuc2V0KFN0b3JhZ2VLZXlNYW5hZ2VyLm5vcm1hbGl6ZShrZXkpLCB2YWx1ZSkuc3Vic2NyaWJlKG5vb3ApO1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXG5cdGNsZWFyKGtleT86IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmIChrZXkgIT09IHVuZGVmaW5lZClcblx0XHRcdHRoaXMuc3RyYXRlZ3kuZGVsKFN0b3JhZ2VLZXlNYW5hZ2VyLm5vcm1hbGl6ZShrZXkpKS5zdWJzY3JpYmUobm9vcCk7XG5cdFx0ZWxzZSB0aGlzLnN0cmF0ZWd5LmNsZWFyKCkuc3Vic2NyaWJlKG5vb3ApO1xuXHR9XG5cblx0Z2V0U3RyYXRlZ3lOYW1lKCk6IHN0cmluZyB7cmV0dXJuIHRoaXMuc3RyYXRlZ3kubmFtZTsgfVxuXG5cdG9ic2VydmUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdGtleSA9IFN0b3JhZ2VLZXlNYW5hZ2VyLm5vcm1hbGl6ZShrZXkpO1xuXHRcdHJldHVybiB0aGlzLnN0cmF0ZWd5LmtleUNoYW5nZXMucGlwZShcblx0XHRcdGZpbHRlcigoY2hhbmdlZDogc3RyaW5nKSA9PiBjaGFuZ2VkID09PSBudWxsIHx8IGNoYW5nZWQgPT09IGtleSksXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zdHJhdGVneS5nZXQoa2V5KSksXG5cdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuXHRcdFx0c2hhcmVSZXBsYXkoe3JlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxfSlcblx0XHQpO1xuXHR9XG5cbn1cblxuZXhwb3J0IHtTeW5jU3RvcmFnZX07XG4iXX0=