Skip to content

API reference / @chanx-js/server / core / TopicBuilder

Interface: TopicBuilder<Pattern, User, State, Emits, Events> ​

Defined in: packages/server/src/topic.ts:118

What topic() returns: chain handlers, then list it in a consumer's topics.

Extends ​

Type Parameters ​

Type ParameterDefault type
Pattern extends string-
User-
StateRecord<never, never>
Emits extends Messagenever
Events extends Messagenever

Properties ​

[TOPIC] ​

ts
readonly [TOPIC]: TopicDefinition;

Defined in: packages/server/src/consumer.ts:194

Inherited from ​

TopicSource.[TOPIC]


~events? ​

ts
readonly optional ~events?: Events;

Defined in: packages/server/src/topic.ts:125

Methods ​

asConsumer() ​

ts
asConsumer<Path>(path, options?): ConsumerBuilder<Path, Record<never, never>, User, never, Events>;

Defined in: packages/server/src/topic.ts:169

Serve this topic alone on a route, where connecting subscribes it from the URL params and frames need no envelope.

Type Parameters ​

Type Parameter
Path extends string

Parameters ​

ParameterType
pathPath
options?Omit<ConsumerOptions<Path, Record<never, never>, User, never>, "name" | "topics"> & object

Returns ​

ConsumerBuilder<Path, Record<never, never>, User, never, Events>


event() ​

Call Signature ​

ts
event<D>(message, handler): TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D>>;

Defined in: packages/server/src/topic.ts:143

Type Parameters ​
Type Parameter
D extends AnyMessageDefinition
Parameters ​
ParameterType
messageD
handlerHandler<MessageOf<D>, TopicContext<Pattern, User, Emits, State>, void | Emits>
Returns ​

TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D>>

Call Signature ​

ts
event<D, O>(
   message, 
   options, 
   handler
): TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D>>;

Defined in: packages/server/src/topic.ts:151

Type Parameters ​
Type ParameterDefault type
D extends AnyMessageDefinition-
O extends Outputsnever
Parameters ​
ParameterType
messageD
optionsHandlerOptions<O>
handlerHandler<MessageOf<D>, TopicContext<Pattern, User, Emits | OutputMessages<O>, State>, Returned<O>>
Returns ​

TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D>>


on() ​

Call Signature ​

ts
on<D>(message, handler): TopicBuilder<Pattern, User, State, Emits, Events>;

Defined in: packages/server/src/topic.ts:126

Type Parameters ​
Type Parameter
D extends AnyMessageDefinition
Parameters ​
ParameterType
messageD
handlerHandler<MessageOf<D>, TopicContext<Pattern, User, Emits, State>, void | Emits>
Returns ​

TopicBuilder<Pattern, User, State, Emits, Events>

Call Signature ​

ts
on<D, O>(
   message, 
   options, 
   handler
): TopicBuilder<Pattern, User, State, Emits, Events>;

Defined in: packages/server/src/topic.ts:134

Type Parameters ​
Type ParameterDefault type
D extends AnyMessageDefinition-
O extends Outputsnever
Parameters ​
ParameterType
messageD
optionsHandlerOptions<O>
handlerHandler<MessageOf<D>, TopicContext<Pattern, User, Emits | OutputMessages<O>, State>, Returned<O>>
Returns ​

TopicBuilder<Pattern, User, State, Emits, Events>


passthrough() ​

ts
passthrough<D>(...messages): TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D[number]>>;

Defined in: packages/server/src/topic.ts:160

Type Parameters ​

Type Parameter
D extends readonly AnyMessageDefinition[]

Parameters ​

ParameterType
...messagesD

Returns ​

TopicBuilder<Pattern, User, State, Emits, Events | MessageOf<D[number]>>


with() ​

ts
with(params): string;

Defined in: packages/server/src/topic.ts:164

The topic string for these params: roomTopic.with({ room_name: 'lobby' }).

Parameters ​

ParameterType
paramsPathParams<Pattern>

Returns ​

string

MIT licensed