UNPKG

session-storage-sync

Version:

sync session storage across multiple browser tabs from same origin

33 lines (32 loc) 722 B
import { StorageMechanism } from "./storage-mechanism"; export class SessionStorage extends StorageMechanism { _events = { set: [], delete: [], clear: [] }; constructor(storage) { super(storage); } set(key, value) { super.set(key, value); this._events.set.forEach((l) => { l(key, value); }); } remove(key) { super.remove(key); this._events.delete.forEach((l) => { l(key); }); } clear() { super.clear(); this._events.clear.forEach((l) => { l(); }); } addEventListener(event, listener) { this._events[event].push(listener); } }