@benev/slate
Version:
frontend web stuff
23 lines • 703 B
JavaScript
/** @deprecated use `pubsub` instead */
export function pub() {
const listeners = new Set();
function subscribe(listener) {
listeners.add(listener);
return () => void listeners.delete(listener);
}
subscribe.publish = (x) => {
for (const listener of listeners)
listener(x);
};
subscribe.clear = () => listeners.clear();
subscribe.once = (listener) => {
const actual_listener = (x) => {
listener(x);
listeners.delete(actual_listener);
};
listeners.add(actual_listener);
return () => void listeners.delete(actual_listener);
};
return subscribe;
}
//# sourceMappingURL=pub.js.map