Skip to content

Function: defineDiscriminatedHandlers()

Makaio Framework


Makaio Framework / ai-adapters-core / defineDiscriminatedHandlers

defineDiscriminatedHandlers<TPayload, TDiscriminator>(discriminator, handlers): DiscriminatedHandlersConfig<TPayload, TDiscriminator>

Defined in: ../../../adapters/core/src/utils/discriminated-handlers.ts:143

Factory to create typed discriminated handlers.

This function provides compile-time validation that handlers receive correctly narrowed payload types based on the discriminator value.

TPayload extends Record<string, unknown>

TDiscriminator extends string = keyof TPayload & string

TDiscriminator

The property key used to discriminate union members

DiscriminatedHandlersMap<TPayload, TDiscriminator>

Map of discriminator values to handler functions

DiscriminatedHandlersConfig<TPayload, TDiscriminator>

Configuration object for use with processDiscriminatedItems

// Define handlers with full type safety
const handlers = defineDiscriminatedHandlers<BetaContentBlock, 'type'>('type', {
text: (block, emit) => {
// block is narrowed to BetaTextBlock
emit(AgentSubjects.message, { content: block.text });
},
thinking: (block, emit) => {
// block is narrowed to BetaThinkingBlock
emit(AgentSubjects.reasoning, { content: block.thinking });
},
tool_use: (block, emit) => {
// block is narrowed to BetaToolUseBlock
emit(AgentSubjects.tool.use, {
toolName: block.name,
args: block.input,
toolCallId: block.id,
});
},
});