Skip to main content

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


PURISTA API / Modules / @purista/core / CommandDefinitionBuilder

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

@purista/core.CommandDefinitionBuilder

Command definition builder is a helper to create and define a command for a service. It helps to set all needed information like schemas and hooks. With these information, the types are automatically set and extended.

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

Type parameters

NameType
ServiceClassTypeextends ServiceClass
MessagePayloadTypeunknown
MessageParamsTypeundefined
MessageResultTypevoid
FunctionPayloadTypeMessagePayloadType
FunctionParamsTypeMessageParamsType
FunctionResultTypeMessageResultType

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>(commandName, commandDescription, eventName?): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Type parameters

NameType
ServiceClassTypeextends ServiceClass<unknown>
MessagePayloadTypeunknown
MessageParamsTypeundefined
MessageResultTypevoid
FunctionPayloadTypeMessagePayloadType
FunctionParamsTypeMessageParamsType
FunctionResultTypeMessageResultType

Parameters

NameType
commandNamestring
commandDescriptionstring
eventName?string

Returns

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

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:113open in new window

Properties

autoacknowledge

Private autoacknowledge: boolean = true

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:63open in new window


commandDescription

Private commandDescription: string

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:115open in new window


commandName

Private commandName: string

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:114open in new window


deprecated

Private deprecated: boolean = false

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:52open in new window


durable

Private durable: boolean = false

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:62open in new window


errorStatusCodes

Private errorStatusCodes: StatusCode[] = []

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:56open in new window


eventName

Private Optional eventName: string

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:116open in new window


fn

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

Defined in

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


hooks

Private hooks: Object

Type declaration

NameType
afterGuardRecord<string, CommandAfterGuardHook<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionResultType, FunctionPayloadType, FunctionParamsType>>
beforeGuardRecord<string, CommandBeforeGuardHook<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType>>
transformInput?{ transformFunction: CommandTransformInputHook<ServiceClassType, any, any, any, any> ; transformInputSchema: ZodType<any, ZodTypeDef, any> ; transformParameterSchema: ZodType<any, ZodTypeDef, any> }
transformInput.transformFunctionCommandTransformInputHook<ServiceClassType, any, any, any, any>
transformInput.transformInputSchemaZodType<any, ZodTypeDef, any>
transformInput.transformParameterSchemaZodType<any, ZodTypeDef, any>
transformOutput?{ transformFunction: CommandTransformOutputHook<ServiceClassType, any, any, FunctionParamsType, any> ; transformOutputSchema: ZodType<any, ZodTypeDef, any> }
transformOutput.transformFunctionCommandTransformOutputHook<ServiceClassType, any, any, FunctionParamsType, any>
transformOutput.transformOutputSchemaZodType<any, ZodTypeDef, any>

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:65open in new window


httpMetadata

Private Optional httpMetadata: Object

Type declaration

NameType
expose{ contentEncodingRequest?: string ; contentEncodingResponse?: string ; contentTypeRequest?: string ; contentTypeResponse?: string ; deprecated?: boolean ; inputPayload?: SchemaObject ; outputPayload?: SchemaObject ; parameter?: SchemaObject } & { http: { method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE" ; openApi?: { additionalStatusCodes?: StatusCode[] ; description: string ; isSecure: boolean ; operationId?: string ; query?: QueryParameter<FunctionParamsType>[] ; summary: string ; tags?: string[] } ; path: string } }

Defined in

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


inputContentEncoding

Private inputContentEncoding: undefined | string

Defined in

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


inputContentType

Private inputContentType: undefined | string

Defined in

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


inputSchema

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

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:41open in new window


isSecure

Private isSecure: boolean = true

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:58open in new window


operationId

Private Optional operationId: string

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:60open in new window


outputContentEncoding

Private outputContentEncoding: undefined | string

Defined in

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


outputContentType

Private outputContentType: undefined | string

Defined in

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


outputSchema

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

Defined in

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


parameterSchema

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

Defined in

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


queryParameter

Private queryParameter: QueryParameter<FunctionParamsType>[] = []

Defined in

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


summary

Private Optional summary: string

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:54open in new window


tags

Private tags: string[] = []

Defined in

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

Methods

addOpenApiErrorStatusCodes

addOpenApiErrorStatusCodes(...codes): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

If a function can return other status codes, than the default ones, you should add them to openApi definition. Per default, 200, 204, 400, 401 and 500 can be autogenerated in most cases. Special cases or different status codes should be added with this function.

Parameters

NameTypeDescription
...codesStatusCode[]List of status codes

Returns

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

CommandDefinitionBuilder

Example

addErrorStatusCodes(StatusCode.PaymentRequired, StatusCode.Conflict)

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:269open in new window


addOpenApiTags

addOpenApiTags(...tags): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Add tags for openApi definition for given function. It is recommended to use some enum for tags to avoid typo issues.

Parameters

NameTypeDescription
...tagsstring[]List of tag strings

Returns

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

CommandDefinitionBuilder

Example

addTags('User','Public')

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:251open in new window


addOutputSchema

addOutputSchema<I, D, O>(outputSchema, outputContentType?, outputContentEncoding?): CommandDefinitionBuilder<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

NameTypeDescription
outputSchemaZodType<O, D, I>The schema validation for output payload
outputContentType?stringoptional the content type of payload
outputContentEncoding?stringoptional the content encoding

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:165open in new window


addParameterSchema

addParameterSchema<I, D, O>(parameterSchema): CommandDefinitionBuilder<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 schema validation for output parameter

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:199open in new window


addPayloadSchema

addPayloadSchema<I, D, O>(inputSchema, inputContentType?, inputContentEncoding?): CommandDefinitionBuilder<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

NameTypeDescription
inputSchemaZodType<O, D, I>The schema validation for input payload
inputContentType?stringoptional the content type of payload
inputContentEncoding?stringoptional the content encoding

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:138open in new window


addQueryParameters

addQueryParameters(...queryParams): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Define query parameters if you expose the function as http endpoint. Query parameters are add to openApi definition. Query parameters are add to input parameters.

Parameters

NameTypeDescription
...queryParamsQueryParameter<FunctionParamsType>[]Add one or more query parameter definitions

Returns

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

CommandDefinitionBuilder

Example

.addQueryParameters(
  {
    required: false,
    name: 'search',
  },
  {
    required: false,
    name: 'limit',
  },
)

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:234open in new window


adviceAutoacknowledgeMessages

adviceAutoacknowledgeMessages(acknowledge?): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

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

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

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

Parameters

NameTypeDefault valueDescription
acknowledgebooleantrueEnable (true) and disable (false)

Returns

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

CommandDefinition

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:593open in new window


disableHttpSecurity

disableHttpSecurity(disabled?): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

enable or disable security for this endpoint

Parameters

NameTypeDefault value
disabledbooleantrue

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:497open in new window


enableHttpSecurity

enableHttpSecurity(enabled?): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

enable or disable security for this endpoint

Parameters

NameTypeDefault valueDescription
enabledbooleantrueDefaults to true if not set means "enable security"

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:487open in new window


exposeAsHttpEndpoint

exposeAsHttpEndpoint(method, path, contentTypeRequest?, contentEncodingRequest?, contentTypeResponse?, contentEncodingResponse?): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Mark the function to be exposed as http endpoint.

Api url prefix and service version are prepended automatically

For exposing a url like: /api/V1/user/login simply provide user/loginas path

Parameters

NameTypeDescription
methodSupportedHttpMethodHttp method POST, PUT, PATCH, GET, DELETE
pathstringThe url path
contentTypeRequest?stringinput content type defaults to application/json
contentEncodingRequest?stringinput content encoding defaults to utf-8
contentTypeResponse?stringinput content type defaults to application/json
contentEncodingResponse?stringinput content encoding defaults to utf-8

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:459open in new window


extendWithHttpMetadata

extendWithHttpMetadata(definition): Complete<CommandDefinition<ServiceClassType, CommandDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>>

Parameters

NameType
definitionComplete<CommandDefinition<ServiceClassType, CommandDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>>

Returns

Complete<CommandDefinition<ServiceClassType, CommandDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>>

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:528open in new window


getCommandFunction

getCommandFunction(): CommandFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Get the function implementation

Returns

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

the function

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:735open in new window


getDefinition

getDefinition(): CommandDefinition<ServiceClassType, CommandDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Creates and returns the CommandDefinition used as input for the service.

Returns

CommandDefinition<ServiceClassType, CommandDefinitionMetadataBase, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

CommandDefinition

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:602open in new window


getTransformInputFunction

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

Return the transform input function

Returns

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

the input transform function if defined

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:328open in new window


getTransformOutputFunction

getTransformOutputFunction(): undefined | CommandTransformOutputHook<ServiceClassType, MessagePayloadType, FunctionResultType, FunctionParamsType, MessageResultType>

Return the transform output function

Returns

undefined | CommandTransformOutputHook<ServiceClassType, MessagePayloadType, FunctionResultType, FunctionParamsType, MessageResultType>

the transform output function if defined

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:385open in new window


markAsDeprecated

markAsDeprecated(): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Mark this endpoint/command as deprecated

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:188open in new window


setAfterGuardHooks

setAfterGuardHooks(afterGuards): CommandDefinitionBuilder<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, CommandAfterGuardHook<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionResultType, FunctionPayloadType, FunctionParamsType>>

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:427open in new window


setBeforeGuardHooks

setBeforeGuardHooks(beforeGuards): CommandDefinitionBuilder<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, CommandBeforeGuardHook<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType>>Object of key = name of guard, value = function

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:405open in new window


setCommandFunction

setCommandFunction(fn): CommandDefinitionBuilder<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
fnCommandFunction<ServiceClassType, MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType, FunctionResultType>the function implementation

Returns

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

CommandDefinitionBuilder

Example

async function (context, payload, parameter) {

   return `the result output payload`
}

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:693open in new window


setOpenApiOperationId

setOpenApiOperationId(operationId): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set the operationId for openApi documentation

Parameters

NameType
operationIdstring

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:523open in new window


setOpenApiSummary

setOpenApiSummary(summary): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Set the function summary text used for example in openApi documentation

Parameters

NameTypeDescription
summarystringSummary text

Returns

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

CommandDefinitionBuilder

Example

setSummary('Some function summary')

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:513open in new window


setSuccessEventName

setSuccessEventName(eventName): CommandDefinitionBuilder<ServiceClassType, MessagePayloadType, MessageParamsType, MessageResultType, FunctionPayloadType, FunctionParamsType, FunctionResultType>

Parameters

NameType
eventNamestring

Returns

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

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:125open in new window


setTransformInput

setTransformInput<PayloadIn, ParamsIn, PayloadOut, ParamsOut, PayloadD, ParamsD>(transformInputSchema, transformParameterSchema, transformFunction, inputContentType?, inputContentEncoding?): CommandDefinitionBuilder<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
transformFunctionCommandTransformInputHook<ServiceClassType, FunctionPayloadType, FunctionParamsType, PayloadIn, ParamsIn>Transform input function
inputContentType?stringoptional the content type of payload
inputContentEncoding?stringoptional the content encoding

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:285open in new window


setTransformOutput

setTransformOutput<PayloadOut, PayloadD, PayloadIn>(transformOutputSchema, transformFunction, outputContentType?, outputContentEncoding?): CommandDefinitionBuilder<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
transformFunctionCommandTransformOutputHook<ServiceClassType, MessagePayloadType, FunctionResultType, FunctionParamsType, PayloadIn>Transform output function
outputContentType?stringoptional the content type of payload
outputContentEncoding?stringoptional the content encoding

Returns

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

CommandDefinitionBuilder

Defined in

CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:352open in new window

Last update:
Contributors: Sebastian Wessel