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
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
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
.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/login
as path
Parameters
method
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
// 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
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
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
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