softkave-js-utils
Version:
JavaScript & Typescript utility functions, types, and classes
26 lines • 559 B
JavaScript
export class ListenableResource {
constructor(data) {
this.listeners = new Map();
this.data = data;
}
listen(fn) {
this.listeners.set(fn, fn);
}
removeListener(fn) {
this.listeners.delete(fn);
}
clearListeners() {
this.listeners = new Map();
}
get() {
return this.data;
}
set(data) {
this.data = data;
this.broadcast();
}
broadcast() {
this.listeners.forEach(fn => fn(this.data));
}
}
//# sourceMappingURL=ListenableResource.js.map