// Code borrowed from https://github.com/bjoerge/nano-pubsub import type {PubSub, Subscriber} from 'get-it' export function createPubSub(): PubSub { const subscribers: {[id: string]: Subscriber} = Object.create(null) let nextId = 0 function subscribe(subscriber: Subscriber) { const id = nextId++ subscribers[id] = subscriber return function unsubscribe() { delete subscribers[id] } } function publish(event: Message) { for (const id in subscribers) { subscribers[id](event) } } return { publish, subscribe, } }