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

45 lines 6.07 kB
import { BaseSyncStorageStrategy } from './baseSyncStorage'; import { Inject, Injectable, PLATFORM_ID } from '@angular/core'; import { LOCAL_STORAGE } from '../core/nativeStorage'; import { StorageStrategies } from '../constants/strategy'; import { isPlatformBrowser } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "../core/strategyCache"; class LocalStorageStrategy extends BaseSyncStorageStrategy { static { this.strategyName = StorageStrategies.Local; } constructor(storage, cache, platformId, zone) { super(storage, cache); this.storage = storage; this.cache = cache; this.platformId = platformId; this.zone = zone; this.name = LocalStorageStrategy.strategyName; if (isPlatformBrowser(this.platformId)) this.listenExternalChanges(); } listenExternalChanges() { window.addEventListener('storage', (event) => this.zone.run(() => { if (event.storageArea !== this.storage) return; const key = event.key; if (key !== null) this.cache.del(this.name, event.key); else this.cache.clear(this.name); this.keyChanges.next(key); })); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy, deps: [{ token: LOCAL_STORAGE }, { token: i1.StrategyCacheService }, { token: PLATFORM_ID }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: LocalStorageStrategy, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [LOCAL_STORAGE] }] }, { type: i1.StrategyCacheService }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID] }] }, { type: i0.NgZone }] }); export { LocalStorageStrategy }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXdlYnN0b3JhZ2Uvc3JjL2xpYi9zdHJhdGVnaWVzL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBVSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7QUFHbEQsTUFDTSxvQkFBcUIsU0FBUSx1QkFBdUI7YUFDekMsaUJBQVksR0FBVyxpQkFBaUIsQ0FBQyxLQUFLLEFBQWxDLENBQW1DO0lBRy9ELFlBQTZDLE9BQW1CLEVBQ25ELEtBQTJCLEVBQ04sVUFBZSxFQUNwQyxJQUFZO1FBQ3hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFKc0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuRCxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQUNOLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUxoQixTQUFJLEdBQVcsb0JBQW9CLENBQUMsWUFBWSxDQUFDO1FBT3pELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFUyxxQkFBcUI7UUFDOUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUMvQyxNQUFNLEdBQUcsR0FBVyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzlCLElBQUksR0FBRyxLQUFLLElBQUk7Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7O2dCQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcEJJLG9CQUFvQixrQkFJTCxhQUFhLGlEQUV0QixXQUFXO2tIQU5qQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpCLFVBQVU7OzBCQUtHLE1BQU07MkJBQUMsYUFBYTs7MEJBRTdCLE1BQU07MkJBQUMsV0FBVzs7QUFrQnZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHJhdGVneUNhY2hlU2VydmljZX0gZnJvbSAnLi4vY29yZS9zdHJhdGVneUNhY2hlJztcbmltcG9ydCB7QmFzZVN5bmNTdG9yYWdlU3RyYXRlZ3l9IGZyb20gJy4vYmFzZVN5bmNTdG9yYWdlJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIFBMQVRGT1JNX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TE9DQUxfU1RPUkFHRX0gZnJvbSAnLi4vY29yZS9uYXRpdmVTdG9yYWdlJztcbmltcG9ydCB7U3RvcmFnZVN0cmF0ZWdpZXN9IGZyb20gJy4uL2NvbnN0YW50cy9zdHJhdGVneSc7XG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXZWJTdG9yYWdlfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMvd2ViU3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKClcbmNsYXNzIExvY2FsU3RvcmFnZVN0cmF0ZWd5IGV4dGVuZHMgQmFzZVN5bmNTdG9yYWdlU3RyYXRlZ3kge1xuXHRzdGF0aWMgcmVhZG9ubHkgc3RyYXRlZ3lOYW1lOiBzdHJpbmcgPSBTdG9yYWdlU3RyYXRlZ2llcy5Mb2NhbDtcblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nID0gTG9jYWxTdG9yYWdlU3RyYXRlZ3kuc3RyYXRlZ3lOYW1lO1xuXG5cdGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxfU1RPUkFHRSkgcHJvdGVjdGVkIHN0b3JhZ2U6IFdlYlN0b3JhZ2UsXG5cdFx0XHRcdHByb3RlY3RlZCBjYWNoZTogU3RyYXRlZ3lDYWNoZVNlcnZpY2UsXG5cdFx0XHRcdEBJbmplY3QoUExBVEZPUk1fSUQpIHByb3RlY3RlZCBwbGF0Zm9ybUlkOiBhbnksXG5cdFx0XHRcdHByb3RlY3RlZCB6b25lOiBOZ1pvbmUpIHtcblx0XHRzdXBlcihzdG9yYWdlLCBjYWNoZSk7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHRoaXMubGlzdGVuRXh0ZXJuYWxDaGFuZ2VzKCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgbGlzdGVuRXh0ZXJuYWxDaGFuZ2VzKCkge1xuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50OiBTdG9yYWdlRXZlbnQpID0+IHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0aWYgKGV2ZW50LnN0b3JhZ2VBcmVhICE9PSB0aGlzLnN0b3JhZ2UpIHJldHVybjtcblx0XHRcdGNvbnN0IGtleTogc3RyaW5nID0gZXZlbnQua2V5O1xuXHRcdFx0aWYgKGtleSAhPT0gbnVsbCkgdGhpcy5jYWNoZS5kZWwodGhpcy5uYW1lLCBldmVudC5rZXkpO1xuXHRcdFx0ZWxzZSB0aGlzLmNhY2hlLmNsZWFyKHRoaXMubmFtZSk7XG5cdFx0XHR0aGlzLmtleUNoYW5nZXMubmV4dChrZXkpO1xuXHRcdH0pKTtcblx0fVxuXG59XG5cbmV4cG9ydCB7TG9jYWxTdG9yYWdlU3RyYXRlZ3l9O1xuIl19