Files
komodo/util/observable.ts
T

14 lines
389 B
TypeScript

export function createObservable<Message>() {
const subscribers = new Set<(message: string) => void>();
return {
subscribe: (callback: (message: string) => void) => {
subscribers.add(callback);
return () => {
subscribers.delete(callback);
};
},
publish: (msg: Message) => {
subscribers.forEach((cb) => cb(JSON.stringify(msg)));
},
};
}