session-storage-sync
Version:
sync session storage across multiple browser tabs from same origin
33 lines (32 loc) • 722 B
JavaScript
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);
}
}