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
Name | Type |
---|---|
ServiceClassType | extends ServiceClass = ServiceClass |
MessagePayloadType | unknown |
MessageParamsType | undefined |
MessageResultType | void |
FunctionPayloadType | MessagePayloadType |
FunctionParamsType | MessageParamsType |
FunctionResultType | MessageResultType | void | undefined |
Table of contents
Constructors
Properties
- autoacknowledge
- durable
- emitEventName
- eventName
- fn
- hooks
- inputContentEncoding
- inputContentType
- inputSchema
- messageType
- outputContentEncoding
- outputContentType
- outputSchema
- parameterSchema
- principalId
- receiver
- sender
- shared
- subscriptionDescription
- subscriptionName
- tenantId
Methods
- addOutputSchema
- addParameterSchema
- addPayloadSchema
- adviceAutoacknowledgeMessage
- adviceDurable
- filterForMessageType
- filterInstanceId
- filterPrincipalId
- filterReceivedBy
- filterSentFrom
- filterTenantId
- getDefinition
- getSubscriptionFunction
- getTransformInputFunction
- getTransformOutputFunction
- receiveMessageOnEveryInstance
- setAfterGuardHooks
- setBeforeGuardHooks
- setSubscriptionFunction
- setTransformInput
- setTransformOutput
- subscribeToEvent
Constructors
constructor
• new SubscriptionDefinitionBuilder<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>(subscriptionName
, subscriptionDescription
): SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Type parameters
Name | Type |
---|---|
ServiceClassType | extends ServiceClass <unknown > = ServiceClass <unknown > |
MessagePayloadType | unknown |
MessageParamsType | undefined |
MessageResultType | void |
FunctionPayloadType | MessagePayloadType |
FunctionParamsType | MessageParamsType |
FunctionResultType | undefined | void | MessageResultType |
Parameters
Name | Type |
---|---|
subscriptionName | string |
subscriptionDescription | string |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:107
Properties
autoacknowledge
• Private
autoacknowledge: boolean
= false
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:104
durable
• Private
durable: boolean
= true
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:101
emitEventName
• Private
Optional
emitEventName: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:96
eventName
• Private
Optional
eventName: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:95
fn
• Private
Optional
fn: SubscriptionFunction
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:86
hooks
• Private
hooks: Object
Type declaration
Name | Type |
---|---|
afterGuard | Record <string , SubscriptionAfterGuardHook <ServiceClassType , FunctionResultType , FunctionPayloadType , FunctionParamsType >> |
beforeGuard | Record <string , SubscriptionBeforeGuardHook <ServiceClassType , FunctionPayloadType , FunctionParamsType >> |
transformInput? | { transformFunction : SubscriptionTransformInputHook <ServiceClassType , any , any , any , any > ; transformInputSchema : ZodType <any , ZodTypeDef , any > ; transformParameterSchema : ZodType <any , ZodTypeDef , any > } |
transformInput.transformFunction | SubscriptionTransformInputHook <ServiceClassType , any , any , any , any > |
transformInput.transformInputSchema | ZodType <any , ZodTypeDef , any > |
transformInput.transformParameterSchema | ZodType <any , ZodTypeDef , any > |
transformOutput? | { transformFunction : SubscriptionTransformOutputHook <ServiceClassType , FunctionResultType , FunctionParamsType , any > ; transformOutputSchema : ZodType <any , ZodTypeDef , any > } |
transformOutput.transformFunction | SubscriptionTransformOutputHook <ServiceClassType , FunctionResultType , FunctionParamsType , any > |
transformOutput.transformOutputSchema | ZodType <any , ZodTypeDef , any > |
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:50
inputContentEncoding
• Private
inputContentEncoding: undefined
| string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:44
inputContentType
• Private
inputContentType: undefined
| string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:43
inputSchema
• Private
Optional
inputSchema: ZodTypeAny
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:42
messageType
• Private
messageType: undefined
| EBMessageType
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:40
outputContentEncoding
• Private
outputContentEncoding: undefined
| string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:47
outputContentType
• Private
outputContentType: undefined
| string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:46
outputSchema
• Private
outputSchema: ZodType
<any
, ZodTypeDef
, any
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:45
parameterSchema
• Private
Optional
parameterSchema: ZodType
<any
, ZodTypeDef
, any
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:48
principalId
• Private
Optional
principalId: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:98
receiver
• Private
Optional
receiver: Object
Type declaration
Name | Type |
---|---|
instanceId? | string |
serviceName? | string |
serviceTarget? | string |
serviceVersion? | string |
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:79
sender
• Private
Optional
sender: Object
Type declaration
Name | Type |
---|---|
instanceId? | string |
serviceName? | string |
serviceTarget? | string |
serviceVersion? | string |
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:72
shared
• Private
shared: boolean
= true
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:103
subscriptionDescription
• Private
subscriptionDescription: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:109
subscriptionName
• Private
subscriptionName: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:108
tenantId
• Private
Optional
tenantId: string
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:99
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
Name | Type |
---|---|
I | I |
D | extends ZodTypeDef |
O | O |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
eventName | string | undefined | the event name to be used when the subscription result is emitted as custom event |
outputSchema | ZodType <O , D , I > | undefined | the validation schema for the output payload |
outputContentType | string | 'application/json' | optional the content type of payload |
outputContentEncoding | string | 'utf-8' | optional the content encoding |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, O
, FunctionPayloadType
, FunctionParamsType
, I
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:318
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
Name | Type |
---|---|
I | I |
D | extends ZodTypeDef |
O | O |
Parameters
Name | Type | Description |
---|---|---|
parameterSchema | ZodType <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:345
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
Name | Type |
---|---|
I | unknown |
D | extends ZodTypeDef = ZodTypeDef |
O | unknown |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
inputSchema | ZodType <O , D , I > | undefined | the validation schema for input payload |
inputContentType | string | 'application/json' | optional the content type of payload |
inputContentEncoding | string | 'utf-8' | optional the content encoding |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, I
, MessageParamsType
, MessageResultType
, O
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:289
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
Name | Type | Default value | Description |
---|---|---|---|
acknowledge | boolean | true | Enable (true) and disable (false) |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinition
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:169
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
Name | Type |
---|---|
durable | boolean |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:194
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
Name | Type | Description |
---|---|---|
messageType | EBMessageType | the type of message |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:275
filterInstanceId
▸ filterInstanceId(instanceId
): SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Filter messages only from instance id
Parameters
Name | Type | Description |
---|---|---|
instanceId | string | the instance id to subscribe |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Deprecated
Use filterSentFrom or filterReceivedBy
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:131
filterPrincipalId
▸ filterPrincipalId(principalId
): SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Filter messages only for principalId
Parameters
Name | Type | Description |
---|---|---|
principalId | string | the principal id to subscribe |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:142
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
Name | Type | Description |
---|---|---|
serviceName | undefined | string | the name of the service that consumes the message |
serviceVersion | undefined | string | the version of the service that consumes the message |
serviceTarget | undefined | string | the command or subscription name of the service that consumes the message |
instanceId | undefined | string | the event bridge instance id which should receive the message |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:250
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
Name | Type | Description |
---|---|---|
serviceName | undefined | string | the name of the service that produces the message |
serviceVersion | undefined | string | the version of the service that produces the message |
serviceTarget | undefined | string | the command or subscription name of the service that produces the message |
instanceId | undefined | string | the event bridge instance id which was publishing the message |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:217
filterTenantId
▸ filterTenantId(tenantId
): SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Filter messages only for tenantId
Parameters
Name | Type | Description |
---|---|---|
tenantId | string | the principal id to subscribe |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:152
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:601
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:572
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:412
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:469
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
Name | Type | Default value |
---|---|---|
enforce | boolean | true |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinition
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:183
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
Name | Type |
---|---|
afterGuards | Record <string , SubscriptionAfterGuardHook <ServiceClassType , FunctionResultType , FunctionPayloadType , FunctionParamsType >> |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:504
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
Name | Type | Description |
---|---|---|
beforeGuards | Record <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:488
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
Name | Type | Description |
---|---|---|
fn | SubscriptionFunction <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:530
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
Name | Type |
---|---|
PayloadIn | MessagePayloadType |
ParamsIn | MessageParamsType |
PayloadOut | MessagePayloadType |
ParamsOut | MessageParamsType |
PayloadD | extends ZodTypeDef = ZodTypeDef |
ParamsD | extends ZodTypeDef = ZodTypeDef |
Parameters
Name | Type | Description |
---|---|---|
transformInputSchema | ZodType <PayloadOut , PayloadD , PayloadIn > | Input payload validation schema |
transformParameterSchema | ZodType <ParamsOut , ParamsD , ParamsIn > | Input parameter validation schema |
transformFunction | SubscriptionTransformInputHook <ServiceClassType , FunctionPayloadType , FunctionParamsType , PayloadIn , ParamsIn > | the transform input function |
inputContentType? | string | optional the content type of payload |
inputContentEncoding? | string | optional the content encoding |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, PayloadIn
, ParamsIn
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:369
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
Name | Type |
---|---|
PayloadOut | PayloadOut |
PayloadD | extends ZodTypeDef |
PayloadIn | PayloadIn |
Parameters
Name | Type | Description |
---|---|---|
transformOutputSchema | ZodType <PayloadOut , PayloadD , PayloadIn > | The output validation schema |
transformFunction | SubscriptionTransformOutputHook <ServiceClassType , FunctionResultType , FunctionParamsType , PayloadIn > | the transform output function |
outputContentType? | string | optional the content type of payload |
outputContentEncoding? | string | optional the content encoding |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, PayloadOut
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:436
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
Name | Type | Description |
---|---|---|
eventName | string | The name of event to subscribe |
serviceVersion? | string | the version of the service that produces the event |
Returns
SubscriptionDefinitionBuilder
<ServiceClassType
, MessagePayloadType
, MessageParamsType
, MessageResultType
, FunctionPayloadType
, FunctionParamsType
, FunctionResultType
>
SubscriptionDefinitionBuilder
Defined in
SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:118