PURISTA API / @purista/core / SubscriptionDefinitionBuilder
Class: SubscriptionDefinitionBuilder<S, C>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:41
Subscription definition builder is a helper to create and define a subscriptions for a service. It helps to set all needed filters.
A working schema definition needs at least a subscription name, a short description and the subscription implementation.
Type Parameters
• C extends SubscriptionDefinitionBuilderTypes
= SubscriptionDefinitionBuilderTypes
Constructors
new SubscriptionDefinitionBuilder()
new SubscriptionDefinitionBuilder<
S
,C
>(subscriptionName
,subscriptionDescription
,deprecated
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:107
Parameters
subscriptionName
string
subscriptionDescription
string
deprecated
boolean
= false
Returns
SubscriptionDefinitionBuilder
<S
, C
>
Methods
addOutputSchema()
addOutputSchema<
OutputSchema
>(eventName
,outputSchema
,outputContentType
,outputContentEncoding
):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
],C
["ParamsSchema"
],OutputSchema
,C
["TransformInputPayloadSchema"
],C
["TransformInputParamsSchema"
],C
["TransformOutputSchema"
],C
["Resources"
],C
["Invokes"
],C
["EmitList"
]>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:438
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
eventName
string
the event name to be used when the subscription result is emitted as custom event
outputSchema
OutputSchema
the validation schema for the output payload
outputContentType
string
= 'application/json'
optional the content type of payload
outputContentEncoding
string
= 'utf-8'
optional the content encoding
Returns
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
], C
["ParamsSchema"
], OutputSchema
, C
["TransformInputPayloadSchema"
], C
["TransformInputParamsSchema"
], C
["TransformOutputSchema"
], C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
SubscriptionDefinitionBuilder
addParameterSchema()
addParameterSchema<
ParamsSchema
>(parameterSchema
):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
],ParamsSchema
,C
["OutputSchema"
],C
["TransformInputPayloadSchema"
],C
["TransformInputParamsSchema"
],C
["TransformOutputSchema"
],C
["Resources"
],C
["Invokes"
],C
["EmitList"
]>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:470
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 validation schema for output parameter
Returns
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
], ParamsSchema
, C
["OutputSchema"
], C
["TransformInputPayloadSchema"
], C
["TransformInputParamsSchema"
], C
["TransformOutputSchema"
], C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
SubscriptionDefinitionBuilder
addPayloadSchema()
addPayloadSchema<
PayloadSchema
>(inputSchema
,inputContentType
,inputContentEncoding
):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<PayloadSchema
,C
["ParamsSchema"
],C
["OutputSchema"
],C
["TransformInputPayloadSchema"
],C
["TransformInputParamsSchema"
],C
["TransformOutputSchema"
],C
["Resources"
],C
["Invokes"
],C
["EmitList"
]>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:404
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 validation schema for input payload
inputContentType
string
= 'application/json'
optional the content type of payload
inputContentEncoding
string
= 'utf-8'
optional the content encoding
Returns
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<PayloadSchema
, C
["ParamsSchema"
], C
["OutputSchema"
], C
["TransformInputPayloadSchema"
], C
["TransformInputParamsSchema"
], C
["TransformOutputSchema"
], C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
SubscriptionDefinitionBuilder
adviceAutoacknowledgeMessage()
adviceAutoacknowledgeMessage(
acknowledge
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:284
Instruct the event bridge message broker to autoacknowledge messages as soon as they arrive. This means, a message will not be resent, if the subscription execution fails unexpected.
If set to false, the message will be resent from message broker to eventbridge, if:
- the underlaying message broker supports it
- if the subscription execution fails unexpected
- if sending of optional subscription response failed
Parameters
acknowledge
boolean
= true
Enable (true) and disable (false)
Returns
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinition
adviceDurable()
adviceDurable(
durable
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:309
False: defines the subscription as a live-subscription, which is only able to process messages while the subscription itself is running.
True: Advises the event bridge (like rabbitMQ) to store all messages if the subscription is not running. As soon as the subscription is back again, all missed messages will be sent first, before it starts working like a live-subscription.
Parameters
durable
boolean
Returns
SubscriptionDefinitionBuilder
<S
, C
>
canEmit()
canEmit<
EventName
,T
>(eventName
,schema
):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<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/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:204
Define which custom events the subscription 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
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<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
?):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<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/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:126
Define a command which can be invoked by the current subscription
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
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<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"
]>>
filterForMessageType()
filterForMessageType(
messageType
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:390
Adds a filter to match specific message type.
Common message types are Command
, CommandSuccessResponse
and CommandErrorResponse
.
See EBMessageType for full available list.
Parameters
messageType
the type of message
Returns
SubscriptionDefinitionBuilder
<S
, C
>
filterPrincipalId()
filterPrincipalId<
T
>(principalId
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:257
Filter messages only for principalId
Type Parameters
• T extends string
Parameters
principalId
the principal id to subscribe
Returns
SubscriptionDefinitionBuilder
<S
, C
>
filterReceivedBy()
filterReceivedBy<
N
,V
,T
,I
>(serviceName
,serviceVersion
,serviceTarget
,instanceId
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:365
Add filter to only match messages received by given service function & version. Set one or more parameters to undefined means "do not filter by this criteria". For example:
This will filter for all messages send to function testFunction of service UserService. This will include messages from all versions of this function.
receivedBy('UserService', undefined, 'testFunction')
Type Parameters
• N extends string
• V extends string
• T extends string
• I extends string
Parameters
serviceName
the name of the service that consumes the message
undefined
| NonEmptyString
<N
>
serviceVersion
the version of the service that consumes the message
undefined
| NonEmptyString
<V
>
serviceTarget
the command or subscription name of the service that consumes the message
undefined
| NonEmptyString
<T
>
instanceId
the event bridge instance id which should receive the message
undefined
| NonEmptyString
<I
>
Returns
SubscriptionDefinitionBuilder
<S
, C
>
filterSentFrom()
filterSentFrom<
N
,V
,T
,I
>(serviceName
,serviceVersion
,serviceTarget
,instanceId
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:332
Add filter to only match messages send by given service function & version. Set one or more parameters to undefined means "do not filter by this criteria". For example:
This will filter for all messages send from function testFunction of service UserService. This will include messages from all versions of this function.
sentFrom('UserService', undefined, 'testFunction')
Type Parameters
• N extends string
• V extends string
• T extends string
• I extends string
Parameters
serviceName
the name of the service that produces the message
undefined
| NonEmptyString
<N
>
serviceVersion
the version of the service that produces the message
undefined
| NonEmptyString
<V
>
serviceTarget
the command or subscription name of the service that produces the message
undefined
| NonEmptyString
<T
>
instanceId
the event bridge instance id which was publishing the message
undefined
| NonEmptyString
<I
>
Returns
SubscriptionDefinitionBuilder
<S
, C
>
filterTenantId()
filterTenantId<
T
>(tenantId
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:267
Filter messages only for tenantId
Type Parameters
• T extends string
Parameters
tenantId
the principal id to subscribe
Returns
SubscriptionDefinitionBuilder
<S
, C
>
getDefinition()
getDefinition():
Promise
<Complete
<SubscriptionDefinition
<S
,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"
],SubscriptionDefinitionMetadataBase
>>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:752
Returns the final subscription definition which will be passed into the service class.
Returns
Promise
<Complete
<SubscriptionDefinition
<S
, 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"
], SubscriptionDefinitionMetadataBase
>>>
SubscriptionDefinition
getSubscriptionContextMock()
getSubscriptionContextMock(
input
):object
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:831
Returns a mocked command function context, which can be used in unit tests.
Parameters
input
message
resources?
Partial
<C
["Resources"
]>
sandbox?
SinonSandbox
Returns
object
a mocked command 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.emit
mock.emit:
EmitCustomMessageFunction
<C
["EmitList"
]>
emit a custom message
mock.logger
mock.logger:
Logger
the logger instance
mock.message
mock.message:
Readonly
<EBMessage
>
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 subscription builder
.canInvoke<{ response: string }>('ServiceA', '1', 'test', 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
>
getSubscriptionFunction()
getSubscriptionFunction():
SubscriptionFunction
<S
,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/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:700
Get the function implementation including input and output validation. Also, before and after hooks are triggered during execution.
Returns
SubscriptionFunction
<S
, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["PayloadSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["OutputSchema"
]>>, C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>
the subscription function
getSubscriptionFunctionPlain()
getSubscriptionFunctionPlain():
void
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:730
Get the function implementation without input and output validation. No hooks are triggered during execution.
Returns
void
the subscription function
getSubscriptionTransformContextMock()
getSubscriptionTransformContextMock(
input
):object
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:851
Returns a mocked transform function context, which can be used in unit tests.
Parameters
input
message
resources?
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
<EBMessage
>
the original received message
mock.resources
mock.resources:
EmptyObject
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
<EmptyObject
>
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
>
getTransformInputFunction()
getTransformInputFunction():
undefined
|SubscriptionTransformInputHook
<S
,UnknownIfNever
<OutputFrom
<AdapterResolver
,C
["TransformInputPayloadSchema"
]>>,UnknownIfNever
<OutputFrom
<AdapterResolver
,C
["TransformInputParamsSchema"
]>>,UnknownIfNever
<InputFrom
<AdapterResolver
,C
["PayloadSchema"
]>>,UnknownIfNever
<InputFrom
<AdapterResolver
,C
["ParamsSchema"
]>>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:540
Return the transform input function
Returns
undefined
| SubscriptionTransformInputHook
<S
, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["TransformInputPayloadSchema"
]>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["TransformInputParamsSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["PayloadSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>>
the input transform function if defined
getTransformOutputFunction()
getTransformOutputFunction():
undefined
|SubscriptionTransformOutputHook
<S
,UnknownIfNever
<OutputFrom
<AdapterResolver
,C
["OutputSchema"
]>>,UnknownIfNever
<OutputFrom
<AdapterResolver
,C
["ParamsSchema"
]>>,UnknownIfNever
<InputFrom
<AdapterResolver
,C
["TransformOutputSchema"
]>>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:602
Return the transform output function
Returns
undefined
| SubscriptionTransformOutputHook
<S
, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["OutputSchema"
]>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["TransformOutputSchema"
]>>>
the transform output function if defined
markAsDeprecated()
markAsDeprecated():
SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:231
Mark this subscription as deprecated
Returns
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinitionBuilder
receiveMessageOnEveryInstance()
receiveMessageOnEveryInstance(
enforce
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:298
Instruct the event bridge message broker to send the matching message to every running instance. The underlaying message broker must support this functionality.
In serverless environments, this flag should not have any effect
Parameters
enforce
boolean
= true
Returns
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinition
setAfterGuardHooks()
setAfterGuardHooks(
afterGuards
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:644
Set one or more after guard hook(s). If there are multiple after guard hooks, they are executed in parallel
Parameters
afterGuards
Record
<string
, SubscriptionAfterGuardHook
<S
, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["OutputSchema"
]>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["PayloadSchema"
]>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>, C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
Returns
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinitionBuilder
setBeforeGuardHooks()
setBeforeGuardHooks(
beforeGuards
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:621
Set one or more before guard hook(s). If there are multiple before guard hooks, they are executed in parallel
Parameters
beforeGuards
Record
<string
, SubscriptionBeforeGuardHook
<S
, 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
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinitionBuilder
setSubscriptionFunction()
setSubscriptionFunction(
fn
):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:678
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
SubscriptionFunction
<S
, 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
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinitionBuilder
Example
async function (context, payload, parameter) {
return `the result output payload`
}
setTransformInput()
setTransformInput<
TransformInputPayloadSchema
,TransformInputParamsSchema
>(transformInputSchema
,transformParameterSchema
,transformFunction
,inputContentType
?,inputContentEncoding
?):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
],C
["ParamsSchema"
],C
["OutputSchema"
],TransformInputPayloadSchema
,TransformInputParamsSchema
,C
["TransformOutputSchema"
],C
["Resources"
],C
["Invokes"
],C
["EmitList"
]>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:499
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
SubscriptionTransformInputHook
<S
, UnknownIfNever
<OutputFrom
<AdapterResolver
, TransformInputPayloadSchema
>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, TransformInputParamsSchema
>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["PayloadSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>>
the transform input function
inputContentType?
string
optional the content type of payload
inputContentEncoding?
string
optional the content encoding
Returns
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
], C
["ParamsSchema"
], C
["OutputSchema"
], TransformInputPayloadSchema
, TransformInputParamsSchema
, C
["TransformOutputSchema"
], C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
SubscriptionDefinitionBuilder
setTransformOutput()
setTransformOutput<
TransformOutputSchema
>(transformOutputSchema
,transformFunction
,outputContentType
?,outputContentEncoding
?):SubscriptionDefinitionBuilder
<S
,SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
],C
["ParamsSchema"
],C
["OutputSchema"
],C
["TransformInputPayloadSchema"
],C
["TransformInputParamsSchema"
],TransformOutputSchema
,C
["Resources"
],C
["Invokes"
],C
["EmitList"
]>>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:564
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
SubscriptionTransformOutputHook
<S
, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["OutputSchema"
]>>, UnknownIfNever
<OutputFrom
<AdapterResolver
, C
["ParamsSchema"
]>>, UnknownIfNever
<InputFrom
<AdapterResolver
, TransformOutputSchema
>>>
the transform output function
outputContentType?
string
optional the content type of payload
outputContentEncoding?
string
optional the content encoding
Returns
SubscriptionDefinitionBuilder
<S
, SubscriptionDefinitionBuilderTypes
<C
["PayloadSchema"
], C
["ParamsSchema"
], C
["OutputSchema"
], C
["TransformInputPayloadSchema"
], C
["TransformInputParamsSchema"
], TransformOutputSchema
, C
["Resources"
], C
["Invokes"
], C
["EmitList"
]>>
SubscriptionDefinitionBuilder
subscribeToEvent()
subscribeToEvent<
N
,V
>(eventName
,serviceVersion
?):SubscriptionDefinitionBuilder
<S
,C
>
Defined in: packages/core/src/SubscriptionDefinitionBuilder/SubscriptionDefinitionBuilder.impl.ts:242
Add a filter to only subscribe to messages with matching event name
Type Parameters
• N extends string
• V extends string
Parameters
eventName
The name of event to subscribe
serviceVersion?
the version of the service that produces the event
Returns
SubscriptionDefinitionBuilder
<S
, C
>
SubscriptionDefinitionBuilder