Skip to content

PURISTA API


PURISTA API / @purista/core / CommandDefinitionBuilder

Class: CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:53

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

S

S extends Service

C

C extends CommandDefinitionBuilderTypes = CommandDefinitionBuilderTypes

Constructors

Constructor

new CommandDefinitionBuilder<S, C>(commandName, commandDescription, eventName?, deprecated?): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:183

Parameters

commandName

string

commandDescription

string

eventName?

string

deprecated?

boolean = false

Returns

CommandDefinitionBuilder<S, C>

Methods

addOpenApiErrorStatusCodes()

addOpenApiErrorStatusCodes(...codes): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:554

If a function can return other status codes, than the default ones, you should add them to openApi definition. By 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

codes

...StatusCode[]

List of status codes

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Example

ts
addErrorStatusCodes(StatusCode.PaymentRequired, StatusCode.Conflict)

addOpenApiTags()

addOpenApiTags(...tags): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:536

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

Parameters

tags

...string[]

List of tag strings

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Example

ts
addTags('User','Public')

addOutputSchema()

addOutputSchema<OutputSchema>(outputSchema, outputContentType?, outputContentEncoding?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], OutputSchema, C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:462

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

Type Parameters

OutputSchema

OutputSchema extends Schema

Parameters

outputSchema

OutputSchema

The schema validation for output payload

outputContentType?

string

optional the content type of payload

outputContentEncoding?

string

optional the content encoding

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], OutputSchema, C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

CommandDefinitionBuilder


addParameterSchema()

addParameterSchema<ParamsSchema>(parameterSchema): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], ParamsSchema, C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:434

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

Type Parameters

ParamsSchema

ParamsSchema extends Schema

Parameters

parameterSchema

ParamsSchema

The schema validation for output parameter

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], ParamsSchema, C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

CommandDefinitionBuilder


addPayloadSchema()

addPayloadSchema<PayloadSchema>(inputSchema, inputContentType?, inputContentEncoding?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<PayloadSchema, C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:402

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

Type Parameters

PayloadSchema

PayloadSchema extends Schema

Parameters

inputSchema

PayloadSchema

The schema validation for input payload

inputContentType?

string

optional the content type of payload

inputContentEncoding?

string

optional the content encoding

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<PayloadSchema, C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

CommandDefinitionBuilder


addQueryParameters()

addQueryParameters(...queryParams): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:519

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

queryParams

...QueryParameter<Infer<C["ParamsSchema"]>>[]

Add one or more query parameter definitions

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Example

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

adviceAutoacknowledgeMessages()

adviceAutoacknowledgeMessages(acknowledge?): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:997

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

acknowledge?

boolean = true

Enable (true) and disable (false)

Returns

CommandDefinitionBuilder<S, C>

CommandDefinition


canConsumeStream()

canConsumeStream<Chunk, Final, Payload, Parameter, SName, Version, Fname>(serviceName, serviceVersion, serviceTarget, chunkSchema?, payloadSchema?, parameterSchema?, finalSchema?, validateChunk?, validateFinal?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<{ sessionId: string; [asyncIterator]: AsyncIterator<{ payload: ...; }>; cancel: Promise<void>; }>>>>, C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:269

Type Parameters

Chunk

Chunk extends Schema

Final

Final extends Schema

Payload

Payload extends Schema

Parameter

Parameter extends Schema

SName

SName extends string = string

Version

Version extends string = string

Fname

Fname extends string = string

Parameters

serviceName

SName

serviceVersion

Version

serviceTarget

Fname

chunkSchema?

Chunk

payloadSchema?

Payload

parameterSchema?

Parameter

finalSchema?

Final

validateChunk?

boolean = true

validateFinal?

boolean = true

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<{ sessionId: string; [asyncIterator]: AsyncIterator<{ payload: ...; }>; cancel: Promise<void>; }>>>>, C["EmitList"], C["QueueInvokes"]>>


canEmit()

canEmit<EventName, T>(eventName, schema): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"] & Record<EventName, InferIn<T>>>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:363

Define which custom events the command can emit.

Type Parameters

EventName

EventName extends string

T

T extends Schema

Parameters

eventName

EventName

The custom event name

schema

T

the payload schema

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"] & Record<EventName, InferIn<T>>>>


canEnqueue()

canEnqueue<Payload, Parameter, QueueName>(queueName, payloadSchema?, parameterSchema?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"] & Record<QueueName, { parameterSchema: Parameter; payloadSchema: Payload; }>>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:136

Type Parameters

Payload

Payload extends Schema

Parameter

Parameter extends Schema

QueueName

QueueName extends string = string

Parameters

queueName

QueueName

payloadSchema?

Payload

parameterSchema?

Parameter

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"] & Record<QueueName, { parameterSchema: Parameter; payloadSchema: Payload; }>>>


canInvoke()

canInvoke<Output, Payload, Parameter, SName, Version, Fname>(serviceName, serviceVersion, serviceTarget, outputSchema?, payloadSchema?, parameterSchema?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<Infer<Output>>>>>, C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:202

Define a command which can be invoked by the current command

Type Parameters

Output

Output extends Schema

Payload

Payload extends Schema

Parameter

Parameter extends Schema

SName

SName extends string = string

Version

Version extends string = string

Fname

Fname extends string = string

Parameters

serviceName

SName

serviceVersion

Version

serviceTarget

Fname

outputSchema?

Output

payloadSchema?

Payload

parameterSchema?

Parameter

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], C["TransformOutputSchema"], C["Resources"], C["Invokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<Infer<Output>>>>>, C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


disableHttpSecurity()

disableHttpSecurity(disabled?): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:861

enable or disable security for this endpoint

Parameters

disabled?

boolean = true

Defaults to true if not set meaning "disable security"

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Deprecated

Use makeEndpointPublic() instead.


enableHttpSecurity()

enableHttpSecurity(enabled?): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:850

enable or disable security for this endpoint

Parameters

enabled?

boolean = true

Defaults to true if not set means "enable security"

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


exposeAsHttpEndpoint()

exposeAsHttpEndpoint(method, path, contentTypeRequest?, contentEncodingRequest?, contentTypeResponse?, contentEncodingResponse?, options?): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:816

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

method

SupportedHttpMethod

Http method POST, PUT, PATCH, GET, DELETE

path

string

The url path

contentTypeRequest?

string

input content type defaults to application/json

contentEncodingRequest?

string

input content encoding defaults to utf-8

contentTypeResponse?

string

input content type defaults to application/json

contentEncodingResponse?

string

input content encoding defaults to utf-8

options?

HttpExposureOptions

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


getAfterGuardHook()

getAfterGuardHook(name): CommandAfterGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:785

Returns the after guard hook corresponding to the provided name.

Parameters

name

string

The name of the hook.

Returns

CommandAfterGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

The after guard hook, or undefined if not found.


getBeforeGuardHook()

getBeforeGuardHook(name): CommandBeforeGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:737

Get the before guard hook for this command.

Parameters

name

string

The name of the before guard to retrieve.

Returns

CommandBeforeGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

The before guard hook, or undefined if not found.


getCommandFunction()

getCommandFunction<T>(input?): CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, InferIn<C["PayloadSchema"]>, InferIn<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1158

Get the function implementation including input and output validation. Also, before hooks are triggered during execution. Before guards can be optional overwritten by optional input parameter.

Type Parameters

T

T = Record<string, CommandBeforeGuardHook<S, any, any, any, any, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Parameters

input?

Overwrite beforeGuards

beforeGuards?

Partial<T>

Returns

CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, InferIn<C["PayloadSchema"]>, InferIn<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

the function


getCommandFunctionPlain()

getCommandFunctionPlain(): CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1189

Get the function implementation without input and output validation. No hooks are triggered during execution.

Returns

CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

the function


getCommandTransformContextMock()

getCommandTransformContextMock(input): object

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1217

Returns a mocked transform function context, which can be used in unit tests.

Parameters

input
parameter

GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>

payload

GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>

resources?

Partial<C["Resources"]>

sandbox?

SinonSandbox

Returns

object

a mocked transform function context

mock

mock: object

mock.configs

configs: object

the config store

mock.configs.getConfig

getConfig: ConfigGetterFunction

get a config value from the config store

mock.configs.removeConfig

removeConfig: ConfigDeleteFunction

delete a config value from the config store

mock.configs.setConfig

setConfig: ConfigSetterFunction

set a config value in the config store

mock.logger

logger: Logger

the logger instance

mock.message

message: Readonly<Command<PayloadType, ParameterType>>

the original message

mock.metrics

metrics: PuristaMetricContext<Metrics>

typed custom metrics declared on the current builder scope

mock.queue

queue: QueueContext

mock.resources

resources: C["Resources"]

mock.secrets

secrets: object

the secret store

mock.secrets.getSecret

getSecret: SecretGetterFunction

get a secret from the secret store

mock.secrets.removeSecret

removeSecret: SecretDeleteFunction

delete a secret from the secret store

mock.secrets.setSecret

setSecret: SecretSetterFunction

set a secret in the secret store

mock.startActiveSpan

startActiveSpan: <F>(name, opts, context, fn) => Promise<F>

wrap given function in an opentelemetry active span

Type Parameters
F

F

Parameters
name

string

opts

SpanOptions

context

Context | undefined

fn

(span) => Promise<F>

Returns

Promise<F>

mock.states

states: object

the state store

mock.states.getState

getState: StateGetterFunction

get a state value from the state store

mock.states.removeState

removeState: StateDeleteFunction

delete a state value from the state store

mock.states.setState

setState: StateSetterFunction

set a state value in the state store

mock.wrapInSpan

wrapInSpan: <F>(name, opts, fn, context?) => Promise<F>

wrap given function in an opentelemetry span

Type Parameters
F

F

Parameters
name

string

opts

SpanOptions

fn

(span) => Promise<F>

context?

Context

Returns

Promise<F>

stubs

stubs: object

stubs.enqueue

enqueue: SinonStub<any[], any>

stubs.getConfig

getConfig: SinonStub<any[], any>

stubs.getSecret

getSecret: SinonStub<any[], any>

stubs.getState

getState: SinonStub<any[], any>

stubs.logger

logger: object = logger.stubs

stubs.logger.debug

debug: SinonStub<any[], any>

stubs.logger.error

error: SinonStub<any[], any>

stubs.logger.fatal

fatal: SinonStub<any[], any>

stubs.logger.info

info: SinonStub<any[], any>

stubs.logger.trace

trace: SinonStub<any[], any>

stubs.logger.warn

warn: SinonStub<any[], any>

stubs.removeConfig

removeConfig: SinonStub<any[], any>

stubs.removeSecret

removeSecret: SinonStub<any[], any>

stubs.removeState

removeState: SinonStub<any[], any>

stubs.resources

resources: Partial<C["Resources"]>

stubs.scheduleAt

scheduleAt: SinonStub<any[], any>

stubs.setConfig

setConfig: SinonStub<any[], any>

stubs.setSecret

setSecret: SinonStub<any[], any>

stubs.setState

setState: SinonStub<any[], any>

stubs.startActiveSpan

startActiveSpan: SinonStub<any[], any>

stubs.wrapInSpan

wrapInSpan: SinonStub<any[], any>


getDefinition()

getDefinition(): Promise<Complete<CommandDefinition<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["TransformInputPayloadSchema"]>, Infer<C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, Infer<C["OutputSchema"]>, InferIn<C["TransformOutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], CommandDefinitionMetadataBase, C["QueueInvokes"]>>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1038

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

Returns

Promise<Complete<CommandDefinition<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["TransformInputPayloadSchema"]>, Infer<C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, Infer<C["OutputSchema"]>, InferIn<C["TransformOutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], CommandDefinitionMetadataBase, C["QueueInvokes"]>>>

CommandDefinition


getTransformInputFunction()

getTransformInputFunction(): CommandTransformInputHook<S, InferIn<C["TransformInputPayloadSchema"]>, InferIn<C["TransformInputParamsSchema"]>, Infer<C["TransformInputPayloadSchema"]>, Infer<C["TransformInputParamsSchema"]>, InferIn<C["PayloadSchema"]>, InferIn<C["ParamsSchema"]>, C["Resources"]> | undefined

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:617

Return the transform input function

Returns

CommandTransformInputHook<S, InferIn<C["TransformInputPayloadSchema"]>, InferIn<C["TransformInputParamsSchema"]>, Infer<C["TransformInputPayloadSchema"]>, Infer<C["TransformInputParamsSchema"]>, InferIn<C["PayloadSchema"]>, InferIn<C["ParamsSchema"]>, C["Resources"]> | undefined

the input transform function if defined


getTransformOutputFunction()

getTransformOutputFunction(): CommandTransformOutputHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["OutputSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["TransformOutputSchema"]>, C["Resources"]> | undefined

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:688

Return the transform output function

Returns

CommandTransformOutputHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["OutputSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["TransformOutputSchema"]>, C["Resources"]> | undefined

the transform output function if defined


makeEndpointPublic()

makeEndpointPublic(): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:871

Mark the endpoint to be public available. No security check like bearer token or basic auth is required to access the endpoint.

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


markAsDeprecated()

markAsDeprecated(): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:492

Mark this endpoint/command as deprecated

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


markSchedulable()

markSchedulable(options): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1013

Mark this command as a short, idempotent schedule target.

Parameters

options

ScheduleOptions & object

Returns

CommandDefinitionBuilder<S, C>

Example

ts
command.markSchedulable({
  name: 'refresh-cache',
  expression: { kind: 'interval', everyMs: 300_000 },
})

setAfterGuardHooks()

setAfterGuardHooks(afterGuards): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:758

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

Parameters

afterGuards

Record<string, CommandAfterGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Object of key = name of guard, value = function

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setBeforeGuardHooks()

setBeforeGuardHooks(beforeGuards): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:710

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

Parameters

beforeGuards

Record<string, CommandBeforeGuardHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Object of key = name of guard, value = function

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setCommandFunction()

setCommandFunction(fn): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1128

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. Arrow functions do not have access to the this scope.

Parameters

fn

CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["OutputSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>

the function implementation

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Example

ts
async function (context, payload, parameter) {

   return `the result output payload`
}

setOpenApiOperationId()

setOpenApiOperationId(operationId): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:897

Set the operationId for openApi documentation

Parameters

operationId

string

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setOpenApiSummary()

setOpenApiSummary(summary): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:887

Set the function summary text used for example in openApi documentation

Parameters

summary

string

Summary text

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Example

ts
setSummary('Some function summary')

setSuccessEventName()

setSuccessEventName<N>(eventName): CommandDefinitionBuilder<S, C>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:389

Type Parameters

N

N extends string

Parameters

eventName

NonEmptyString<N>

Returns

CommandDefinitionBuilder<S, C>


setTransformInput()

setTransformInput<TransformInputPayloadSchema, TransformInputParamsSchema>(transformInputSchema, transformParameterSchema, transformFunction, inputContentType?, inputContentEncoding?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], TransformInputPayloadSchema, TransformInputParamsSchema, C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:570

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

TransformInputPayloadSchema

TransformInputPayloadSchema extends Schema

TransformInputParamsSchema

TransformInputParamsSchema extends Schema

Parameters

transformInputSchema

TransformInputPayloadSchema

Input payload validation schema

transformParameterSchema

TransformInputParamsSchema

Input parameter validation schema

transformFunction

CommandTransformInputHook<S, InferIn<TransformInputPayloadSchema>, InferIn<TransformInputParamsSchema>, Infer<TransformInputPayloadSchema>, Infer<TransformInputParamsSchema>, InferIn<C["PayloadSchema"]>, InferIn<C["ParamsSchema"]>, C["Resources"]>

Transform input function

inputContentType?

string

optional the content type of payload

inputContentEncoding?

string

optional the content encoding

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], TransformInputPayloadSchema, TransformInputParamsSchema, C["TransformOutputSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

CommandDefinitionBuilder


setTransformOutput()

setTransformOutput<TransformOutputSchema>(transformOutputSchema, transformFunction, outputContentType?, outputContentEncoding?): CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], TransformOutputSchema, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:644

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

TransformOutputSchema

TransformOutputSchema extends Schema

Parameters

transformOutputSchema

TransformOutputSchema

The output validation schema

transformFunction

CommandTransformOutputHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, Infer<C["OutputSchema"]>, Infer<C["ParamsSchema"]>, InferIn<TransformOutputSchema>, C["Resources"]>

Transform output function

outputContentType?

string

optional the content type of payload

outputContentEncoding?

string

optional the content encoding

Returns

CommandDefinitionBuilder<S, CommandDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["OutputSchema"], C["TransformInputPayloadSchema"], C["TransformInputParamsSchema"], TransformOutputSchema, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

CommandDefinitionBuilder