Skip to content

Event Bus

Bindings for @solid-primitives/event-bus.

createEventBus

let createEventBus<'T>(): EventBus<'T>

See EventBus.

createEmitter

let createEmitter<'T>(): Emitter<'T>

See Emitter.

createMappedEmitter

let createMappedEmitter<'MessageSchema>(): MappedEmitter<'MessageSchema>

See MappedEmitter, a binding made for F#.

createEventHub

let createEventHub<'T> (?channels: 'T): EventHub<'T>

See EventHub.

EventBus

Created by createEventBus.

type EventBus<'T> = interface

A single-event emitter with listener management.

member listen: ('T -> unit) -> DisposeCallback

The listener is removed automatically on cleanup. Call the returned callback to remove it earlier.

member emit: 'T -> unit
member clear: unit -> unit

Emitter

Created by createEmitter. For a typed version, see createMappedEmitter and MappedEmitter.

type Emitter<'MessageTyper> = interface

An emitter for multiple named events.

member on: (string * (obj -> unit)) -> DisposeCallback

The subscription is removed automatically on cleanup. Call the returned callback to remove it earlier.

member emit: (string * obj) -> unit
member clear: unit -> unit

MappedEmitter

Created by createMappedEmitter.

type MappedEmitter<'MessageMapper> = interface

A type-safe Emitter, made for F#. The event key is the path to a member of 'MessageMapper, so the message has that member's type.

member on
    (mapping: 'MessageMapper -> 'MessageType)
    (callback: 'MessageType -> unit)
    : DisposeCallback
member emit
    (mapping: 'MessageMapper -> 'MessageType)
    (message: 'MessageType)
    : unit
member clear: unit -> unit

GlobalEmitter

type GlobalEmitter<'T> = inherit Emitter<'T>

An emitter that can also listen to every event.

member listen: (obj -> unit) -> DisposeCallback

EventHub

Created by createEventHub.

type EventHub<'T> = inherit GlobalEmitter<'T>

Helpers for using a group of event buses. Works with createEventBus, createEventStack, or any emitter with the same API.

Edit this page