UNPKG

@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
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