@dotgov/core
Version:
DGS core.
60 lines • 6.26 kB
JavaScript
import { EventEmitter, Injectable } from '@angular/core';
export class StorageService {
constructor() {
this._storage = {};
this._inProgress = {};
}
get(key) {
return this._storage[key];
}
set(key, value) {
this._storage[key] = value;
}
remove(key, taskId) {
const found = this._storage[key];
if (taskId && found && Array.isArray(found)) {
const index = found.findIndex(f => f.taskId === taskId);
if (index > -1) {
found.splice(index, 1);
if (found.length > 0) {
this._storage[key] = found;
return;
}
}
else {
return found;
}
}
delete this._storage[key];
}
removeMatched(match) {
Object.keys(this._storage).forEach(key => {
if (key.indexOf(match) !== -1) {
this.remove(key);
}
});
Object.keys(this._inProgress).forEach(key => {
if (key.indexOf(match) !== -1) {
this.deleteProgress(key);
}
});
}
clearCache() {
this._inProgress = {};
this._storage = {};
}
getProgress(key) {
return this._inProgress[key];
}
deleteProgress(key) {
delete this._inProgress[key];
}
setProgress(key) {
this._inProgress[key] = new EventEmitter();
}
}
StorageService.decorators = [
{ type: Injectable }
];
StorageService.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsTUFBTSxPQUFPLGNBQWM7SUFJekI7UUFIUSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO0lBRWxCLENBQUM7SUFFaEIsR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxNQUFPO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDeEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUMzQixPQUFPO2lCQUNSO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUyxXQUFXLENBQUMsR0FBVztRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVTLGNBQWMsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsV0FBVyxDQUFDLEdBQVc7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xELENBQUM7OztZQTVERixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfc3RvcmFnZTogT2JqZWN0ID0ge307XHJcbiAgcHJpdmF0ZSBfaW5Qcm9ncmVzczogT2JqZWN0ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgZ2V0KGtleTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9zdG9yYWdlW2tleV07XHJcbiAgfVxyXG5cclxuICBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3N0b3JhZ2Vba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGtleTogc3RyaW5nLCB0YXNrSWQ/KSB7XHJcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuX3N0b3JhZ2Vba2V5XTtcclxuICAgIGlmICh0YXNrSWQgJiYgZm91bmQgJiYgQXJyYXkuaXNBcnJheShmb3VuZCkpIHtcclxuICAgICAgY29uc3QgaW5kZXggPSBmb3VuZC5maW5kSW5kZXgoZiA9PiBmLnRhc2tJZCA9PT0gdGFza0lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICBmb3VuZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIGlmIChmb3VuZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLl9zdG9yYWdlW2tleV0gPSBmb3VuZDtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBkZWxldGUgdGhpcy5fc3RvcmFnZVtrZXldO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWF0Y2hlZChtYXRjaDogc3RyaW5nKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLl9zdG9yYWdlKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihtYXRjaCkgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLl9pblByb2dyZXNzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkuaW5kZXhPZihtYXRjaCkgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVQcm9ncmVzcyhrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsZWFyQ2FjaGUoKSB7XHJcbiAgICB0aGlzLl9pblByb2dyZXNzID0ge307XHJcbiAgICB0aGlzLl9zdG9yYWdlID0ge307XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0UHJvZ3Jlc3Moa2V5OiBzdHJpbmcpOiBFdmVudEVtaXR0ZXI8YW55PiB8IHVuZGVmaW5lZCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3Nba2V5XTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkZWxldGVQcm9ncmVzcyhrZXk6IHN0cmluZykge1xyXG4gICAgZGVsZXRlIHRoaXMuX2luUHJvZ3Jlc3Nba2V5XTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRQcm9ncmVzcyhrZXk6IHN0cmluZykge1xyXG4gICAgdGhpcy5faW5Qcm9ncmVzc1trZXldID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==