ngx-webstorage
Version:
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 storages.
38 lines • 4.61 kB
JavaScript
import { of, Subject } from 'rxjs';
import { StrategyCacheService } from '../core/strategyCache';
import { StorageStrategies } from '../constants/strategy';
import { Inject, Injectable } from '@angular/core';
export class InMemoryStorageStrategy {
constructor(cache) {
this.cache = cache;
this.keyChanges = new Subject();
this.isAvailable = true;
this.name = InMemoryStorageStrategy.strategyName;
}
get(key) {
return of(this.cache.get(this.name, key));
}
set(key, value) {
this.cache.set(this.name, key, value);
this.keyChanges.next(key);
return of(value);
}
del(key) {
this.cache.del(this.name, key);
this.keyChanges.next(key);
return of(null);
}
clear() {
this.cache.clear(this.name);
this.keyChanges.next(null);
return of(null);
}
}
InMemoryStorageStrategy.strategyName = StorageStrategies.InMemory;
InMemoryStorageStrategy.decorators = [
{ type: Injectable }
];
InMemoryStorageStrategy.ctorParameters = () => [
{ type: StrategyCacheService, decorators: [{ type: Inject, args: [StrategyCacheService,] }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5NZW1vcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtd2Vic3RvcmFnZS9zcmMvbGliL3N0cmF0ZWdpZXMvaW5NZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHakQsTUFBTSxPQUFPLHVCQUF1QjtJQU1uQyxZQUFvRCxLQUEyQjtRQUEzQixVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQUp0RSxlQUFVLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDckQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDbkIsU0FBSSxHQUFXLHVCQUF1QixDQUFDLFlBQVksQ0FBQztJQUVxQixDQUFDO0lBRW5GLEdBQUcsQ0FBQyxHQUFXO1FBQ2QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixDQUFDOztBQTNCZSxvQ0FBWSxHQUFXLGlCQUFpQixDQUFDLFFBQVEsQ0FBQzs7WUFGbEUsVUFBVTs7O1lBSkgsb0JBQW9CLHVCQVdkLE1BQU0sU0FBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0b3JhZ2VTdHJhdGVneX0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzL3N0b3JhZ2VTdHJhdGVneSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7U3RyYXRlZ3lDYWNoZVNlcnZpY2V9IGZyb20gJy4uL2NvcmUvc3RyYXRlZ3lDYWNoZSc7XG5pbXBvcnQge1N0b3JhZ2VTdHJhdGVnaWVzfSBmcm9tICcuLi9jb25zdGFudHMvc3RyYXRlZ3knO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlU3RyYXRlZ3kgaW1wbGVtZW50cyBTdG9yYWdlU3RyYXRlZ3k8YW55PiB7XG5cdHN0YXRpYyByZWFkb25seSBzdHJhdGVneU5hbWU6IHN0cmluZyA9IFN0b3JhZ2VTdHJhdGVnaWVzLkluTWVtb3J5O1xuXHRyZWFkb25seSBrZXlDaGFuZ2VzOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuXHRpc0F2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cdHJlYWRvbmx5IG5hbWU6IHN0cmluZyA9IEluTWVtb3J5U3RvcmFnZVN0cmF0ZWd5LnN0cmF0ZWd5TmFtZTtcblxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KFN0cmF0ZWd5Q2FjaGVTZXJ2aWNlKSBwcm90ZWN0ZWQgY2FjaGU6IFN0cmF0ZWd5Q2FjaGVTZXJ2aWNlKSB7fVxuXG5cdGdldChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0cmV0dXJuIG9mKHRoaXMuY2FjaGUuZ2V0KHRoaXMubmFtZSwga2V5KSk7XG5cdH1cblxuXHRzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdHRoaXMuY2FjaGUuc2V0KHRoaXMubmFtZSwga2V5LCB2YWx1ZSk7XG5cdFx0dGhpcy5rZXlDaGFuZ2VzLm5leHQoa2V5KTtcblx0XHRyZXR1cm4gb2YodmFsdWUpO1xuXHR9XG5cblx0ZGVsKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG5cdFx0dGhpcy5jYWNoZS5kZWwodGhpcy5uYW1lLCBrZXkpO1xuXHRcdHRoaXMua2V5Q2hhbmdlcy5uZXh0KGtleSk7XG5cdFx0cmV0dXJuIG9mKG51bGwpO1xuXHR9XG5cblx0Y2xlYXIoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG5cdFx0dGhpcy5jYWNoZS5jbGVhcih0aGlzLm5hbWUpO1xuXHRcdHRoaXMua2V5Q2hhbmdlcy5uZXh0KG51bGwpO1xuXHRcdHJldHVybiBvZihudWxsKTtcblx0fVxuXG59XG4iXX0=