PURISTA API / @purista/core / SubscriptionFunctionContextEnhancements
Type Alias: SubscriptionFunctionContextEnhancements<Resources, Invokes, StreamInvokes, EmitList, QueueInvokes, AgentInvokes>
SubscriptionFunctionContextEnhancements<
Resources,Invokes,StreamInvokes,EmitList,QueueInvokes,AgentInvokes> =object
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:22
It provides the original command message. Also, the methods:
emitwhich allows to emit custom events to the event bridgeinvokewhich allows to call other commands
Type Parameters
Resources
Resources extends Record<string, unknown> = EmptyObject
Invokes
Invokes extends InvokeList = EmptyObject
StreamInvokes
StreamInvokes extends StreamInvokeList = EmptyObject
EmitList
EmitList extends Record<string, Schema> = EmptyObject
QueueInvokes
QueueInvokes extends QueueInvokeList = QueueInvokeList
AgentInvokes
AgentInvokes extends AgentInvokeList = EmptyObject
Properties
emit
emit:
EmitCustomMessageFunction<EmitList>
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:33
emit a custom message
invokeAgent
invokeAgent:
AgentInvokes
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:60
Invokes an agent and returns the result.
message
message:
Readonly<EBMessage>
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:31
the original message
queue
queue:
QueueContext<QueueInvokes>
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:52
resources
resources:
Resources
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:56
Provides resources defined in service builder and set via config during service creation
service
service:
Invokes
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:49
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)
})stream
stream:
StreamInvokes
Defined in: core/types/subscription/SubscriptionFunctionContext.ts:51
consumes stream responses from other service stream endpoints
