UNPKG

@plq/use-persisted-state

Version:
42 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.managed = exports.sync = exports.local = void 0; const listeners = { local: new Set(), sync: new Set(), managed: new Set(), }; function fireStorageEvent(changes, area) { listeners[area].forEach(listener => { listener(changes); }); } browser.storage.onChanged.addListener((changes, area) => { fireStorageEvent(changes, area); }); function createOnChanged(area) { return { addListener(listener) { listeners[area].add(listener); }, removeListener(listener) { listeners[area].delete(listener); }, hasListener(listener) { return listeners[area].has(listener); }, }; } const createStorage = (storage, area) => ({ get: storage.get, set: storage.set, remove: storage.remove, onChanged: createOnChanged(area), }); const local = createStorage(browser.storage.local, 'local'); exports.local = local; const sync = createStorage(browser.storage.sync, 'sync'); exports.sync = sync; const managed = createStorage(browser.storage.managed, 'managed'); exports.managed = managed; //# sourceMappingURL=browser-storage.js.map