UNPKG

rvx

Version:

A signal based rendering library

39 lines (38 loc) 881 B
export interface EventFn<T extends unknown[]> { (...args: T): void; } export interface Event<T extends unknown[]> { /** * Subscribe to this event until the current lifecycle is disposed. */ (listener: EventFn<T>): void; } /** * An emitter for a single event type. * * @example * ```tsx * import { Emitter } from "rvx"; * * const emitter = new Emitter<[address: string, port: number]>(); * * emitter.event((address, port) => { * console.log("Connected:", address, port); * }); * * emitter.emit("127.0.0.1", 12345); * ``` */ export declare class Emitter<T extends unknown[]> { #private; /** * Subscribe to this event until the current lifecycle is disposed. */ event: Event<T>; /** * Emit this event. * * Note, that listeners will run immediately in the current context. */ emit: EventFn<T>; }