@ronniepettersson/homebridge-dummy
Version:
Create Homebridge accessories to help with automation and control — scheduling, delays, sensors, commands, webhooks, and more
48 lines • 1.42 kB
JavaScript
import storage from 'node-persist';
const BUCKET_KEY = 'Storage.bucket';
export async function storageGet_Deprecated(key) {
if (!Storage.has(key)) {
const storable = await storage.get(key);
if (storable) {
await Storage.set(key, storable);
}
}
return Storage.get(key);
}
export class Storage {
static bucket = new Map();
static async init(persistPath) {
await storage.init({ dir: persistPath, forgiveParseErrors: true });
const bucketJson = await storage.get(BUCKET_KEY);
if (bucketJson === undefined) {
return;
}
try {
const bucketArray = JSON.parse(bucketJson);
for (const entry of bucketArray) {
Storage.bucket.set(entry[0], entry[1]);
}
}
catch {
// ignore
}
}
static has(key) {
return Storage.bucket.has(key);
}
static get(key) {
return Storage.bucket.get(key);
}
static async set(key, storable) {
if (storable !== undefined) {
Storage.bucket.set(key, storable);
}
else {
Storage.bucket.delete(key);
}
const bucketArray = Array.from(Storage.bucket.entries());
const bucketJson = JSON.stringify(bucketArray);
await storage.set(BUCKET_KEY, bucketJson);
}
}
//# sourceMappingURL=storage.js.map