Skip to content

@purista/core v2.0.5


PURISTA API / @purista/core / CommandDefinitionBuilder

Class: CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:44

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 extends Service

C extends CommandDefinitionBuilderTypes = CommandDefinitionBuilderTypes

Constructors

new CommandDefinitionBuilder()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:104

Parameters

commandName

string

commandDescription

string

eventName?

string

deprecated?

boolean = false

Returns

CommandDefinitionBuilder<S, C>

Methods

addOpenApiErrorStatusCodes()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:389

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

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: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:371

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["EmitList"]>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:299

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

Type Parameters

OutputSchema extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

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["EmitList"]>>

CommandDefinitionBuilder


addParameterSchema()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:273

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

Type Parameters

ParamsSchema extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

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["EmitList"]>>

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["EmitList"]>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:243

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

Type Parameters

PayloadSchema extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

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["EmitList"]>>

CommandDefinitionBuilder


addQueryParameters()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:354

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<UnknownIfNever<OutputFrom<AdapterResolver, 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: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:807

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


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["EmitList"] & Record<EventName, UnknownIfNever<InputFrom<AdapterResolver, T>>>>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:201

Define which custom events the command can emit.

Type Parameters

EventName extends string

T extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

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["EmitList"] & Record<EventName, UnknownIfNever<InputFrom<AdapterResolver, T>>>>>


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<UnknownIfNever<OutputFrom<AdapterResolver, Output>>>>>>, C["EmitList"]>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:123

Define a command which can be invoked by the current command

Type Parameters

Output extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

Payload extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

Parameter extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

SName extends string = string

Version extends string = string

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<UnknownIfNever<OutputFrom<AdapterResolver, Output>>>>>>, C["EmitList"]>>


disableHttpSecurity()

disableHttpSecurity(disabled): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:676

enable or disable security for this endpoint

Parameters

disabled

boolean = true

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder

Deprecated

use makeEndpointPublic() instead


enableHttpSecurity()

enableHttpSecurity(enabled): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:665

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?): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:637

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

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


getAfterGuardHook()

getAfterGuardHook(name): void

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:608

Returns the after guard hook corresponding to the provided name.

Parameters

name

string

The name of the hook.

Returns

void

The after guard hook, or undefined if not found.


getBeforeGuardHook()

getBeforeGuardHook(name): void

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:564

Get the before guard hook for this command.

Parameters

name

string

The name of the before guard to retrieve.

Returns

void

The before guard hook, or undefined if not found.


getCommandContextMock()

getCommandContextMock<MessagePayloadType, MessageParamsType, FunctionPayloadType, FunctionParamsType>(input): object

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:984

Type Parameters

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

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

FunctionPayloadType = UnknownIfNever<InputFrom<AdapterResolver, C["PayloadSchema"]>>

FunctionParamsType = UnknownIfNever<InputFrom<AdapterResolver, C["ParamsSchema"]>>

Parameters

input
message?

{ parameter: MessageParamsType; payload: MessagePayloadType; }

message.parameter

MessageParamsType

message.payload

MessagePayloadType

parameter

FunctionParamsType

payload

FunctionPayloadType

resources?

Partial<C["Resources"]>

sandbox?

SinonSandbox

Returns

object

a mocked command context

mock

mock: object

mock.configs

mock.configs: object

the config store

mock.configs.getConfig

mock.configs.getConfig: ConfigGetterFunction

get a config value from the config store

mock.configs.removeConfig

mock.configs.removeConfig: ConfigDeleteFunction

delete a config value from the config store

mock.configs.setConfig

mock.configs.setConfig: ConfigSetterFunction

set a config value in the config store

mock.emit

mock.emit: EmitCustomMessageFunction<C["EmitList"]>

emit a custom message

mock.logger

mock.logger: Logger

the logger instance

mock.message

mock.message: Readonly<{ contentEncoding: string; contentType: string; correlationId: string; eventName: string; id: string; messageType: Command; otp: string; payload: { parameter: MessageParamsType; payload: MessagePayloadType; }; principalId: string; receiver: EBMessageAddress; sender: { instanceId: string; serviceName: string; serviceTarget: string; serviceVersion: string; }; tenantId: string; timestamp: number; traceId: string; }>

the original message

mock.resources

mock.resources: C["Resources"]

Provides resources defined in service builder and set via config during service creation

mock.secrets

mock.secrets: object

the secret store

mock.secrets.getSecret

mock.secrets.getSecret: SecretGetterFunction

get a secret from the secret store

mock.secrets.removeSecret

mock.secrets.removeSecret: SecretDeleteFunction

delete a secret from the secret store

mock.secrets.setSecret

mock.secrets.setSecret: SecretSetterFunction

set a secret in the secret store

mock.service

mock.service: C["Invokes"]

Invokes a command and returns the result. It is recommended to validate the result against a schema which only contains the data you actually need.

Example
typescript
// define your invocation in command builder
.canInvoke('ServiceA', '1', 'test', responseOutputSchema, payloadSchema, parameterSchema)
.setCommandFunction(async function (context, payload, _parameter) {
   const inputPayload = { my: 'input' }
   const inputParameter = { search: 'for_me' }
   const result = await context.service.ServiceA[1].test(inputPayload,inputParameter)
})
mock.startActiveSpan()

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

wrap given function in an opentelemetry active span

Type Parameters

F

Parameters
name

string

opts

SpanOptions

context

undefined | Context

fn

(span) => Promise<F>

Returns

Promise<F>

mock.states

mock.states: object

the state store

mock.states.getState

mock.states.getState: StateGetterFunction

get a state value from the state store

mock.states.removeState

mock.states.removeState: StateDeleteFunction

delete a state value from the state store

mock.states.setState

mock.states.setState: StateSetterFunction

set a state value in the state store

mock.wrapInSpan()

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

wrap given function in an opentelemetry span

Type Parameters

F

Parameters
name

string

opts

SpanOptions

fn

(span) => Promise<F>

context?

Context

Returns

Promise<F>

stubs

stubs: object

stubs.emit

stubs.emit: FromEmitToOtherType<C["EmitList"], SinonStub<any[], any>> = eventList

stubs.getConfig

stubs.getConfig: SinonStub<any[], any>

stubs.getSecret

stubs.getSecret: SinonStub<any[], any>

stubs.getState

stubs.getState: SinonStub<any[], any>

stubs.invoke

stubs.invoke: SinonStub<any[], any>

stubs.logger

stubs.logger: object = logger.stubs

stubs.logger.debug

stubs.logger.debug: SinonStub<any[], any>

stubs.logger.error

stubs.logger.error: SinonStub<any[], any>

stubs.logger.fatal

stubs.logger.fatal: SinonStub<any[], any>

stubs.logger.info

stubs.logger.info: SinonStub<any[], any>

stubs.logger.trace

stubs.logger.trace: SinonStub<any[], any>

stubs.logger.warn

stubs.logger.warn: SinonStub<any[], any>

stubs.removeConfig

stubs.removeConfig: SinonStub<any[], any>

stubs.removeSecret

stubs.removeSecret: SinonStub<any[], any>

stubs.removeState

stubs.removeState: SinonStub<any[], any>

stubs.resources

stubs.resources: Partial<C["Resources"]>

stubs.service

stubs.service: FromInvokeToOtherType<C["Invokes"], SinonStub<any[], any>>

stubs.setConfig

stubs.setConfig: SinonStub<any[], any>

stubs.setSecret

stubs.setSecret: SinonStub<any[], any>

stubs.setState

stubs.setState: SinonStub<any[], any>

stubs.startActiveSpan

stubs.startActiveSpan: SinonStub<any[], any>

stubs.wrapInSpan

stubs.wrapInSpan: SinonStub<any[], any>


getCommandFunction()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:928

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 = Record<string, CommandBeforeGuardHook<S, any, any, any, any, C["Resources"], C["Invokes"], C["EmitList"]>>

Parameters

input?

Overwrite beforeGuards

beforeGuards?

Partial<T>

Returns

CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<InputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>

the function


getCommandFunctionPlain()

getCommandFunctionPlain(): CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:959

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"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>

the function


getCommandTransformContextMock()

getCommandTransformContextMock(input): object

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:1020

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

mock.configs: object

the config store

mock.configs.getConfig

mock.configs.getConfig: ConfigGetterFunction

get a config value from the config store

mock.configs.removeConfig

mock.configs.removeConfig: ConfigDeleteFunction

delete a config value from the config store

mock.configs.setConfig

mock.configs.setConfig: ConfigSetterFunction

set a config value in the config store

mock.logger

mock.logger: Logger

the logger instance

mock.message

mock.message: Readonly<{ contentEncoding: string; contentType: string; correlationId: string; eventName: string; id: string; messageType: Command; otp: string; payload: { parameter: GetMessageParamsType; payload: GetMessagePayloadType; }; principalId: string; receiver: EBMessageAddress; sender: { instanceId: string; serviceName: string; serviceTarget: string; serviceVersion: string; }; tenantId: string; timestamp: number; traceId: string; }>

the original message

mock.resources

mock.resources: C["Resources"]

mock.secrets

mock.secrets: object

the secret store

mock.secrets.getSecret

mock.secrets.getSecret: SecretGetterFunction

get a secret from the secret store

mock.secrets.removeSecret

mock.secrets.removeSecret: SecretDeleteFunction

delete a secret from the secret store

mock.secrets.setSecret

mock.secrets.setSecret: SecretSetterFunction

set a secret in the secret store

mock.startActiveSpan()

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

wrap given function in an opentelemetry active span

Type Parameters

F

Parameters
name

string

opts

SpanOptions

context

undefined | Context

fn

(span) => Promise<F>

Returns

Promise<F>

mock.states

mock.states: object

the state store

mock.states.getState

mock.states.getState: StateGetterFunction

get a state value from the state store

mock.states.removeState

mock.states.removeState: StateDeleteFunction

delete a state value from the state store

mock.states.setState

mock.states.setState: StateSetterFunction

set a state value in the state store

mock.wrapInSpan()

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

wrap given function in an opentelemetry span

Type Parameters

F

Parameters
name

string

opts

SpanOptions

fn

(span) => Promise<F>

context?

Context

Returns

Promise<F>

stubs

stubs: object

stubs.getConfig

stubs.getConfig: SinonStub<any[], any>

stubs.getSecret

stubs.getSecret: SinonStub<any[], any>

stubs.getState

stubs.getState: SinonStub<any[], any>

stubs.logger

stubs.logger: object = logger.stubs

stubs.logger.debug

stubs.logger.debug: SinonStub<any[], any>

stubs.logger.error

stubs.logger.error: SinonStub<any[], any>

stubs.logger.fatal

stubs.logger.fatal: SinonStub<any[], any>

stubs.logger.info

stubs.logger.info: SinonStub<any[], any>

stubs.logger.trace

stubs.logger.trace: SinonStub<any[], any>

stubs.logger.warn

stubs.logger.warn: SinonStub<any[], any>

stubs.removeConfig

stubs.removeConfig: SinonStub<any[], any>

stubs.removeSecret

stubs.removeSecret: SinonStub<any[], any>

stubs.removeState

stubs.removeState: SinonStub<any[], any>

stubs.resources

stubs.resources: Partial<C["Resources"]>

stubs.setConfig

stubs.setConfig: SinonStub<any[], any>

stubs.setSecret

stubs.setSecret: SinonStub<any[], any>

stubs.setState

stubs.setState: SinonStub<any[], any>

stubs.startActiveSpan

stubs.startActiveSpan: SinonStub<any[], any>

stubs.wrapInSpan

stubs.wrapInSpan: SinonStub<any[], any>


getDefinition()

getDefinition(): Promise<Complete<CommandDefinition<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["TransformOutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"], CommandDefinitionMetadataBase>>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:816

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"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["TransformOutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"], CommandDefinitionMetadataBase>>>

CommandDefinition


getTransformInputFunction()

getTransformInputFunction(): undefined | CommandTransformInputHook<S, UnknownIfNever<InputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["ParamsSchema"]>>, C["Resources"]>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:449

Return the transform input function

Returns

undefined | CommandTransformInputHook<S, UnknownIfNever<InputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputPayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["TransformInputParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["ParamsSchema"]>>, C["Resources"]>

the input transform function if defined


getTransformOutputFunction()

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

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:517

Return the transform output function

Returns

undefined | CommandTransformOutputHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["TransformOutputSchema"]>>, C["Resources"]>

the transform output function if defined


makeEndpointPublic()

makeEndpointPublic(): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:686

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: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:327

Mark this endpoint/command as deprecated

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setAfterGuardHooks()

setAfterGuardHooks(afterGuards): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:583

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"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["OutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>>

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setBeforeGuardHooks()

setBeforeGuardHooks(beforeGuards): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:539

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"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>>

Object of key = name of guard, value = function

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setCommandFunction()

setCommandFunction(fn): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:901

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

fn

CommandFunction<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, C["OutputSchema"]>>, C["Resources"], C["Invokes"], C["EmitList"]>

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: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:712

Set the operationId for openApi documentation

Parameters

operationId

string

Returns

CommandDefinitionBuilder<S, C>

CommandDefinitionBuilder


setOpenApiSummary()

setOpenApiSummary(summary): CommandDefinitionBuilder<S, C>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:702

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: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:230

Type Parameters

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["EmitList"]>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:405

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 extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

TransformInputParamsSchema extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

Parameters

transformInputSchema

TransformInputPayloadSchema

Input payload validation schema

transformParameterSchema

TransformInputParamsSchema

Input parameter validation schema

transformFunction

CommandTransformInputHook<S, UnknownIfNever<InputFrom<AdapterResolver, TransformInputPayloadSchema>>, UnknownIfNever<InputFrom<AdapterResolver, TransformInputParamsSchema>>, UnknownIfNever<OutputFrom<AdapterResolver, TransformInputPayloadSchema>>, UnknownIfNever<OutputFrom<AdapterResolver, TransformInputParamsSchema>>, UnknownIfNever<InputFrom<AdapterResolver, C["PayloadSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, 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["EmitList"]>>

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["EmitList"]>>

Defined in: packages/core/src/CommandDefinitionBuilder/CommandDefinitionBuilder.impl.ts:476

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 extends SchemaObject | Schema<any, any, any, ""> | ZodType<any, ZodTypeDef, any>

Parameters

transformOutputSchema

TransformOutputSchema

The output validation schema

transformFunction

CommandTransformOutputHook<S, GetMessagePayloadType<C["PayloadSchema"], C["TransformInputPayloadSchema"]>, GetMessageParamsType<C["ParamsSchema"], C["TransformInputParamsSchema"]>, UnknownIfNever<OutputFrom<AdapterResolver, C["OutputSchema"]>>, UnknownIfNever<OutputFrom<AdapterResolver, C["ParamsSchema"]>>, UnknownIfNever<InputFrom<AdapterResolver, 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["EmitList"]>>

CommandDefinitionBuilder