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
23 lines • 4.8 kB
JavaScript
import { StorageKeyManager } from '../../helpers/storageKeyManager';
import { distinctUntilChanged, filter, map, shareReplay, switchMap } from 'rxjs/operators';
class AsyncStorage {
constructor(strategy) {
this.strategy = strategy;
}
retrieve(key) {
return this.strategy.get(StorageKeyManager.normalize(key)).pipe(map((value) => typeof value === 'undefined' ? null : value));
}
store(key, value) {
return this.strategy.set(StorageKeyManager.normalize(key), value);
}
clear(key) {
return key !== undefined ? this.strategy.del(StorageKeyManager.normalize(key)) : this.strategy.clear();
}
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 { AsyncStorage };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmNTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXdlYnN0b3JhZ2Uvc3JjL2xpYi9jb3JlL3RlbXBsYXRlcy9hc3luY1N0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpGLE1BQU0sWUFBWTtJQUVqQixZQUFzQixRQUE4QjtRQUE5QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNwRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVk7UUFDakIsT0FBTyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4RyxDQUFDO0lBRUQsZUFBZSxLQUFhLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXhELE9BQU8sQ0FBQyxHQUFXO1FBQ2xCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ25DLE1BQU0sQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssR0FBRyxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN2QyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0gsQ0FBQztDQUNEO0FBQ0QsT0FBTyxFQUFDLFlBQVksRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdG9yYWdlU3RyYXRlZ3l9IGZyb20gJy4uL2ludGVyZmFjZXMvc3RvcmFnZVN0cmF0ZWd5JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N0b3JhZ2VTZXJ2aWNlfSBmcm9tICcuLi9pbnRlcmZhY2VzL3N0b3JhZ2VTZXJ2aWNlJztcbmltcG9ydCB7U3RvcmFnZUtleU1hbmFnZXJ9IGZyb20gJy4uLy4uL2hlbHBlcnMvc3RvcmFnZUtleU1hbmFnZXInO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY2xhc3MgQXN5bmNTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZVNlcnZpY2Uge1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdHJhdGVneTogU3RvcmFnZVN0cmF0ZWd5PGFueT4pIHtcblx0fVxuXG5cdHJldHJpZXZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5zdHJhdGVneS5nZXQoU3RvcmFnZUtleU1hbmFnZXIubm9ybWFsaXplKGtleSkpLnBpcGUoXG5cdFx0XHRtYXAoKHZhbHVlOiBhbnkpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogdmFsdWUpXG5cdFx0KTtcblx0fVxuXG5cdHN0b3JlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5zdHJhdGVneS5zZXQoU3RvcmFnZUtleU1hbmFnZXIubm9ybWFsaXplKGtleSksIHZhbHVlKTtcblx0fVxuXG5cdGNsZWFyKGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuXHRcdHJldHVybiBrZXkgIT09IHVuZGVmaW5lZCA/IHRoaXMuc3RyYXRlZ3kuZGVsKFN0b3JhZ2VLZXlNYW5hZ2VyLm5vcm1hbGl6ZShrZXkpKSA6IHRoaXMuc3RyYXRlZ3kuY2xlYXIoKTtcblx0fVxuXG5cdGdldFN0cmF0ZWd5TmFtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5zdHJhdGVneS5uYW1lOyB9XG5cblx0b2JzZXJ2ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0a2V5ID0gU3RvcmFnZUtleU1hbmFnZXIubm9ybWFsaXplKGtleSk7XG5cdFx0cmV0dXJuIHRoaXMuc3RyYXRlZ3kua2V5Q2hhbmdlcy5waXBlKFxuXHRcdFx0ZmlsdGVyKChjaGFuZ2VkOiBzdHJpbmcpID0+IGNoYW5nZWQgPT09IG51bGwgfHwgY2hhbmdlZCA9PT0ga2V5KSxcblx0XHRcdHN3aXRjaE1hcCgoKSA9PiB0aGlzLnN0cmF0ZWd5LmdldChrZXkpKSxcblx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG5cdFx0XHRzaGFyZVJlcGxheSh7cmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDF9KVxuXHRcdCk7XG5cdH1cbn1cbmV4cG9ydCB7QXN5bmNTdG9yYWdlfTtcbiJdfQ==