Skip to main content
Version: Next (2.x)

TypedPubSub<Engine, Map>

Creates a type-safe wrapper around a PubSub implementation.

This utility ensures that your subscription channels and their payloads are properly typed, helping catch potential errors at compile time.

Param​

The PubSub engine instance (e.g., PubSub, RedisPubSub)

Param​

Configuration options

Example​

// Define your event map
type PubSubMap = {
"user-updated": User;
[c: `user-updated-${string}`]: User;
};

// Create typed PubSub instance
const pubsub = new TypedPubSub<PubSub, PubSubMap>(new PubSub());

// Usage with Redis
const pubsub = new TypedPubSub<RedisPubSub, PubSubMap>(
new RedisPubSub({
publisher: new Redis(options),
subscriber: new Redis(options),
}),
{
prefix: "feature-1:",
}
);

Type Parameters​

Type Parameter

Engine extends PubSubEngine

Map extends PubSubMap

Constructors​

Constructor​

new TypedPubSub<Engine, Map>(pubsub, options?): TypedPubSub<Engine, Map>

Parameters​

ParameterType

pubsub

Engine

options?

TypedPubSubOptions

Returns​

TypedPubSub<Engine, Map>

Properties​

PropertyModifierType

channelPrefix

protected

string

pubsub

protected

Engine

options?

protected

TypedPubSubOptions

Methods​

asyncIterableIterator()​

asyncIterableIterator<C>(triggers, ...rest): AsyncIterableIterator<Map[C], any, any>

Type Parameters​

Type Parameter

C extends string | number | symbol

Parameters​

ParameterType

triggers

C | C[]

...rest

RestAsyncIterableIteratorFnArgs<Engine["asyncIterableIterator"]>

Returns​

AsyncIterableIterator<Map[C], any, any>


mapChannel()​

protected mapChannel<C>(channel): string

Type Parameters​

Type Parameter

C extends string | number | symbol

Parameters​

ParameterType

channel

C

Returns​

string


mapTriggers()​

protected mapTriggers<C>(triggers): string | string[]

Type Parameters​

Type Parameter

C extends string | number | symbol

Parameters​

ParameterType

triggers

C | C[]

Returns​

string | string[]


publish()​

publish<C>(channel, message, ...rest): Promise<void>

Type Parameters​

Type Parameter

C extends string | number | symbol

Parameters​

ParameterType

channel

C

message

Map[C]

...rest

RestPayloadFnArgs<Engine["publish"]>

Returns​

Promise<void>


subscribe()​

subscribe<C>(channel, onMessage, ...rest): Promise<number>

Type Parameters​

Type Parameter

C extends string | number | symbol

Parameters​

ParameterType

channel

C

onMessage

OnMessage<Map[C]>

...rest

RestSubscribeFnArgs<Engine["subscribe"]>

Returns​

Promise<number>


unsubscribe()​

unsubscribe(subId, ...rest): void

Parameters​

ParameterType

subId

number

...rest

RestUnsubscribeFnArgs<Engine["unsubscribe"]>

Returns​

void