Files
speckle-server/packages/frontend-2/plugins/eventBus.ts
T
Kristaps Fabians Geikins b02a07e2b6 feat: Frontend 2.0 MVP
2023-05-08 10:47:01 +03:00

23 lines
553 B
TypeScript

import mitt from 'mitt'
import type {
EventBusKeyPayloadMap,
EventBusKeys
} from '~~/lib/core/composables/eventBus'
export default defineNuxtPlugin(() => {
const emitter = mitt<EventBusKeyPayloadMap>()
return {
provide: {
eventBus: {
on: <T extends EventBusKeys>(
key: T,
handler: (event: EventBusKeyPayloadMap[T]) => void
) => emitter.on(key, handler),
emit: <T extends EventBusKeys>(key: T, payload: EventBusKeyPayloadMap[T]) =>
emitter.emit(key, payload)
}
}
}
})