getDataPublisherFromEventEmitter

function getDataPublisherFromEventEmitter<TEventMap>(
    eventEmitter,
): DataPublisher<{
    [TEventType in
        | string
        | number
        | symbol]: TEventMap[TEventType] extends CustomEvent<any>
        ? any[any]['detail']
        : null;
}>;

Returns an object with an on function that you can call to subscribe to certain data over a named channel.

The on function returns an unsubscribe function.

Type Parameters

Type Parameter
TEventMap extends Record<string, Event>

Parameters

ParameterType
eventEmitter| TypedEventEmitter<TEventMap> | TypedEventTarget<TEventMap>

Returns

DataPublisher<{ [TEventType in string | number | symbol]: TEventMap[TEventType] extends CustomEvent<any> ? any[any]["detail"] : null }>

Example

const socketDataPublisher = getDataPublisherFromEventEmitter(new WebSocket('wss://api.devnet.solana.com'));
const unsubscribe = socketDataPublisher.on('message', message => {
    if (JSON.parse(message.data).id === 42) {
        console.log('Got response 42');
        unsubscribe();
    }
});

On this page