Skip to main content

Class: SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>


PURISTA API / Modules / @purista/core / SubscriptionDefinitionBuilder

Class: SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

@purista/core.SubscriptionDefinitionBuilder

Subscription definition builder is a helper to create and define a subscriptions for a service. It helps to set all needed filters.

A working schema definition needs at least a subscription name, a short description and the subscription implementation.

Type parameters

NameType
ServiceClassTypeextends ServiceClass = ServiceClass
MessagePayloadTypeunknown
MessageParamsTypeundefined
MessageResultTypevoid
FunctionPayloadTypeMessagePayloadType
FunctionParamsTypeMessageParamsType
FunctionResultTypeMessageResultType | void | undefined

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>(subscriptionName, subscriptionDescription): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Type parameters

NameType
ServiceClassTypeextends ServiceClass<unknown> = ServiceClass<unknown>
MessagePayloadTypeunknown
MessageParamsTypeundefined
MessageResultTypevoid
FunctionPayloadTypeMessagePayloadType
FunctionParamsTypeMessageParamsType
FunctionResultTypeundefined | void | MessageResultType

Parameters

NameType
subscriptionNamestring
subscriptionDescriptionstring

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:107open in new window

Properties

autoacknowledge

Private autoacknowledge: boolean = false

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:104open in new window


durable

Private durable: boolean = true

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:101open in new window


emitEventName

Private Optional emitEventName: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:96open in new window


eventName

Private Optional eventName: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:95open in new window


fn

Private Optional fn: SubscriptionFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:86open in new window


hooks

Private hooks: Object

Type declaration

NameType
afterGuardRecord<string, SubscriptionAfterGuardHook<ServiceClassType, FunctionResultType, FunctionPayloadType, FunctionParamsType>>
beforeGuardRecord<string, SubscriptionBeforeGuardHook<ServiceClassType, FunctionPayloadType, FunctionParamsType>>
transformInput?{ transformFunction: SubscriptionTransformInputHook<ServiceClassType, any, any, any, any> ; transformInputSchema: ZodType<any, ZodTypeDef, any> ; transformParameterSchema: ZodType<any, ZodTypeDef, any> }
transformInput.transformFunctionSubscriptionTransformInputHook<ServiceClassType, any, any, any, any>
transformInput.transformInputSchemaZodType<any, ZodTypeDef, any>
transformInput.transformParameterSchemaZodType<any, ZodTypeDef, any>
transformOutput?{ transformFunction: SubscriptionTransformOutputHook<ServiceClassType, FunctionResultType, FunctionParamsType, any> ; transformOutputSchema: ZodType<any, ZodTypeDef, any> }
transformOutput.transformFunctionSubscriptionTransformOutputHook<ServiceClassType, FunctionResultType, FunctionParamsType, any>
transformOutput.transformOutputSchemaZodType<any, ZodTypeDef, any>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:50open in new window


inputContentEncoding

Private inputContentEncoding: undefined | string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:44open in new window


inputContentType

Private inputContentType: undefined | string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:43open in new window


inputSchema

Private Optional inputSchema: ZodTypeAny

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:42open in new window


messageType

Private messageType: undefined | EBMessageType

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:40open in new window


outputContentEncoding

Private outputContentEncoding: undefined | string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:47open in new window


outputContentType

Private outputContentType: undefined | string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:46open in new window


outputSchema

Private outputSchema: ZodType<any, ZodTypeDef, any>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:45open in new window


parameterSchema

Private Optional parameterSchema: ZodType<any, ZodTypeDef, any>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:48open in new window


principalId

Private Optional principalId: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:98open in new window


receiver

Private Optional receiver: Object

Type declaration

NameType
instanceId?string
serviceName?string
serviceTarget?string
serviceVersion?string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:79open in new window


sender

Private Optional sender: Object

Type declaration

NameType
instanceId?string
serviceName?string
serviceTarget?string
serviceVersion?string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:72open in new window


shared

Private shared: boolean = true

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:103open in new window


subscriptionDescription

Private subscriptionDescription: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:109open in new window


subscriptionName

Private subscriptionName: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:108open in new window


tenantId

Private Optional tenantId: string

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:99open in new window

Methods

addOutputSchema

addOutputSchema<I, D, O>(eventName, outputSchema, outputContentType?, outputContentEncoding?): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, O, FunctionPayloadType, FunctionParamsType, I>

Add a schema for output payload validation. Types for payload of message and function payload output are generated from given schema.

Type parameters

NameType
II
Dextends ZodTypeDef
OO

Parameters

NameTypeDefault valueDescription
eventNamestringundefinedthe event name to be used when the subscription result is emitted as custom event
outputSchemaZodType<O, D, I>undefinedthe validation schema for the output payload
outputContentTypestring'application/json'optional the content type of payload
outputContentEncodingstring'utf-8'optional the content encoding

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, O, FunctionPayloadType, FunctionParamsType, I>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:318open in new window


addParameterSchema

addParameterSchema<I, D, O>(parameterSchema): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, I, MessageResultType, FunctionPayloadType, O, FunctionResultType>

Add a schema for output parameter validation. Types for parameter of message and function parameter output are generated from given schema.

Type parameters

NameType
II
Dextends ZodTypeDef
OO

Parameters

NameTypeDescription
parameterSchemaZodType<O, D, I>the validation schema for output parameter

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, I, MessageResultType, FunctionPayloadType, O, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:345open in new window


addPayloadSchema

addPayloadSchema<I, D, O>(inputSchema, inputContentType?, inputContentEncoding?): SubscriptionDefinitionBuilder<ServiceClassType, I, MessageParamsType, MessageResultType, O, FunctionParamsType, FunctionResultType>

Add a schema for input payload validation. Types for payload of message and function payload input are generated from given schema.

Type parameters

NameType
Iunknown
Dextends ZodTypeDef = ZodTypeDef
Ounknown

Parameters

NameTypeDefault valueDescription
inputSchemaZodType<O, D, I>undefinedthe validation schema for input payload
inputContentTypestring'application/json'optional the content type of payload
inputContentEncodingstring'utf-8'optional the content encoding

Returns

SubscriptionDefinitionBuilder<ServiceClassType, I, MessageParamsType, MessageResultType, O, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:289open in new window


adviceAutoacknowledgeMessage

adviceAutoacknowledgeMessage(acknowledge?): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Instruct the event bridge message broker to autoacknowledge messages as soon as they arrive. This means, a message will not be resent, if the subscription execution fails unexpected.

If set to false, the message will be resent from message broker to eventbridge, if:

  • the underlaying message broker supports it
  • if the subscription execution fails unexpected
  • if sending of optional subscription response failed

Parameters

NameTypeDefault valueDescription
acknowledgebooleantrueEnable (true) and disable (false)

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinition

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:169open in new window


adviceDurable

adviceDurable(durable): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

False: defines the subscription as a live-subscription, which is only able to process messages while the subscription itself is running.

True: Advises the event bridge (like rabbitMQ) to store all messages if the subscription is not running. As soon as the subscription is back again, all missed messages will be sent first, before it starts working like a live-subscription.

Parameters

NameType
durableboolean

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:194open in new window


filterForMessageType

filterForMessageType(messageType): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Adds a filter to match specific message type.

Common message types are Command, CommandSuccessResponse and CommandErrorResponse.

See EBMessageType for full available list.

Parameters

NameTypeDescription
messageTypeEBMessageTypethe type of message

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:275open in new window


filterInstanceId

filterInstanceId(instanceId): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Filter messages only from instance id

Parameters

NameTypeDescription
instanceIdstringthe instance id to subscribe

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Deprecated

Use filterSentFrom or filterReceivedBy

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:131open in new window


filterPrincipalId

filterPrincipalId(principalId): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Filter messages only for principalId

Parameters

NameTypeDescription
principalIdstringthe principal id to subscribe

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:142open in new window


filterReceivedBy

filterReceivedBy(serviceName, serviceVersion, serviceTarget, instanceId): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Add filter to only match messages received by given service function & version. Set one or more parameters to undefined means "do not filter by this criteria". For example:

This will filter for all messages send to function testFunction of service UserService. This will include messages from all versions of this function.

receivedBy('UserService', undefined, 'testFunction')

Parameters

NameTypeDescription
serviceNameundefined | stringthe name of the service that consumes the message
serviceVersionundefined | stringthe version of the service that consumes the message
serviceTargetundefined | stringthe command or subscription name of the service that consumes the message
instanceIdundefined | stringthe event bridge instance id which should receive the message

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:250open in new window


filterSentFrom

filterSentFrom(serviceName, serviceVersion, serviceTarget, instanceId): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Add filter to only match messages send by given service function & version. Set one or more parameters to undefined means "do not filter by this criteria". For example:

This will filter for all messages send from function testFunction of service UserService. This will include messages from all versions of this function.

sentFrom('UserService', undefined, 'testFunction')

Parameters

NameTypeDescription
serviceNameundefined | stringthe name of the service that produces the message
serviceVersionundefined | stringthe version of the service that produces the message
serviceTargetundefined | stringthe command or subscription name of the service that produces the message
instanceIdundefined | stringthe event bridge instance id which was publishing the message

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:217open in new window


filterTenantId

filterTenantId(tenantId): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Filter messages only for tenantId

Parameters

NameTypeDescription
tenantIdstringthe principal id to subscribe

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:152open in new window


getDefinition

getDefinition(): SubscriptionDefinition<ServiceClassType, SubscriptionDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Returns the final subscription definition which will be passed into the service class.

Returns

SubscriptionDefinition<ServiceClassType, SubscriptionDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinition

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:601open in new window


getSubscriptionFunction

getSubscriptionFunction(): SubscriptionFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Get the function implementation

Returns

SubscriptionFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

the subscription function

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:572open in new window


getTransformInputFunction

getTransformInputFunction(): undefined | SubscriptionTransformInputHook<ServiceClassType, FunctionPayloadType, FunctionParamsType, MessagePayloadType, MessageParamsType>

Return the transform input function

Returns

undefined | SubscriptionTransformInputHook<ServiceClassType, FunctionPayloadType, FunctionParamsType, MessagePayloadType, MessageParamsType>

the input transform function if defined

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:412open in new window


getTransformOutputFunction

getTransformOutputFunction(): undefined | SubscriptionTransformOutputHook<ServiceClassType, FunctionResultType, FunctionParamsType, FunctionResultType>

Return the transform output function

Returns

undefined | SubscriptionTransformOutputHook<ServiceClassType, FunctionResultType, FunctionParamsType, FunctionResultType>

the transform output function if defined

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:469open in new window


receiveMessageOnEveryInstance

receiveMessageOnEveryInstance(enforce?): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Instruct the event bridge message broker to send the matching message to every running instance. The underlaying message broker must support this functionality.

In serverless environments, this flag should not have any effect

Parameters

NameTypeDefault value
enforcebooleantrue

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinition

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:183open in new window


setAfterGuardHooks

setAfterGuardHooks(afterGuards): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set one or more after guard hook(s). If there are multiple after guard hooks, they are executed in parallel

Parameters

NameType
afterGuardsRecord<string, SubscriptionAfterGuardHook<ServiceClassType, FunctionResultType, FunctionPayloadType, FunctionParamsType>>

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:504open in new window


setBeforeGuardHooks

setBeforeGuardHooks(beforeGuards): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set one or more before guard hook(s). If there are multiple before guard hooks, they are executed in parallel

Parameters

NameTypeDescription
beforeGuardsRecord<string, SubscriptionBeforeGuardHook<ServiceClassType, FunctionPayloadType, FunctionParamsType>>Object of key = name of guard, value = function

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:488open in new window


setSubscriptionFunction

setSubscriptionFunction(fn): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Required: Set the function implementation. The types should be automatically set as soon as schemas previously defined. As the function will be a a function of a service class you need to implement as function declaration. Anonymous functions do not have access to the this scope.

Parameters

NameTypeDescription
fnSubscriptionFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>the function implementation

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Example

async function (context, payload, parameter) {

   return `the result output payload`
}

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:530open in new window


setTransformInput

setTransformInput<PayloadIn, ParamsIn, PayloadOut, ParamsOut, PayloadD, ParamsD>(transformInputSchema, transformParameterSchema, transformFunction, inputContentType?, inputContentEncoding?): SubscriptionDefinitionBuilder<ServiceClassType, PayloadIn, ParamsIn, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set a transform input hook which will encode or transform the input payload and parameters. Will be executed as first step before input validation, before guard and the function itself. This will change the type of input message payload and input message parameter.

Type parameters

NameType
PayloadInMessagePayloadType
ParamsInMessageParamsType
PayloadOutMessagePayloadType
ParamsOutMessageParamsType
PayloadDextends ZodTypeDef = ZodTypeDef
ParamsDextends ZodTypeDef = ZodTypeDef

Parameters

NameTypeDescription
transformInputSchemaZodType<PayloadOut, PayloadD, PayloadIn>Input payload validation schema
transformParameterSchemaZodType<ParamsOut, ParamsD, ParamsIn>Input parameter validation schema
transformFunctionSubscriptionTransformInputHook<ServiceClassType, FunctionPayloadType, FunctionParamsType, PayloadIn, ParamsIn>the transform input function
inputContentType?stringoptional the content type of payload
inputContentEncoding?stringoptional the content encoding

Returns

SubscriptionDefinitionBuilder<ServiceClassType, PayloadIn, ParamsIn, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:369open in new window


setTransformOutput

setTransformOutput<PayloadOut, PayloadD, PayloadIn>(transformOutputSchema, transformFunction, outputContentType?, outputContentEncoding?): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, PayloadOut, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set a transform output hook which will encode or transform the response payload. Will be executed at very last step after function execution, output validation and after guard hooks. This will change the type of output message payload.

Type parameters

NameType
PayloadOutPayloadOut
PayloadDextends ZodTypeDef
PayloadInPayloadIn

Parameters

NameTypeDescription
transformOutputSchemaZodType<PayloadOut, PayloadD, PayloadIn>The output validation schema
transformFunctionSubscriptionTransformOutputHook<ServiceClassType, FunctionResultType, FunctionParamsType, PayloadIn>the transform output function
outputContentType?stringoptional the content type of payload
outputContentEncoding?stringoptional the content encoding

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, PayloadOut, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:436open in new window


subscribeToEvent

subscribeToEvent(eventName, serviceVersion?): SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Add a filter to only subscribe to messages with matching event name

Parameters

NameTypeDescription
eventNamestringThe name of event to subscribe
serviceVersion?stringthe version of the service that produces the event

Returns

SubscriptionDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

SubscriptionDefinitionBuilder

Defined in

SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:118open in new window

Last update:
Contributors: Sebastian Wessel