UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

41 lines 1.73 kB
import { DependencyContainer } from "../DependencyContainer"; import { Api } from "../Api"; export class LocalStorageService { GetServiceName() { return LocalStorageService.ServiceName; } GetResourceName(inContextOf, objectId) { return `_exalus_${Api.WorksInContextOf}_${inContextOf}_${objectId}`; } Remove(inContextOf, objectId) { localStorage.removeItem(this.GetResourceName(inContextOf, objectId)); } DropStorage(inContextOf) { const prefix = `_exalus_${Api.WorksInContextOf}_${inContextOf}`; const keysToRemove = Object.keys(localStorage).filter(k => k.startsWith(prefix)); keysToRemove.forEach(k => { var _a; (_a = DependencyContainer.Log) === null || _a === void 0 ? void 0 : _a.Warning(LocalStorageService.ServiceName, `Clearing API cache for key: ${k}`); localStorage.removeItem(k); }); } Save(inContextOf, objectId, data) { localStorage.setItem(this.GetResourceName(inContextOf, objectId), JSON.stringify(data)); } Read(inContextOf, objectId) { var _a; try { let name = this.GetResourceName(inContextOf, objectId); let obj = localStorage.getItem(name); if (obj == null) return null; return JSON.parse(obj); } catch (ex) { (_a = DependencyContainer.Log) === null || _a === void 0 ? void 0 : _a.Error(LocalStorageService.ServiceName, `Exception has occurred while reading ${this.GetResourceName(inContextOf, objectId)}`); return null; } } } LocalStorageService.ServiceName = "LocalStorageService"; //# sourceMappingURL=LocalStorageService.js.map