WorkflowProxy
RPC and HTTP API definitions for workflows.
Given one or more Workflow values, toRpcGroup creates the RPC definitions for clients and servers, while toHttpApiGroup creates HTTP POST endpoints that can be mounted in an API. Each workflow gets execute, discard, and resume operations, so callers can start a workflow or resume a suspended run by executionId without importing the workflow handler directly.
Constructors
toHttpApiGroup
Added in v4.0.0
Source
Signature
declare function toHttpApiGroup<Name extends string, Workflows extends readonly [Any, Any]>(
name: Name,
workflows: Workflows,
): HttpApiGroup<Name, ConvertHttpApi<Workflows[number]>>;toRpcGroup
Added in v4.0.0
Source
Derives an RpcGroup from a list of workflows.
Signature
declare function toRpcGroup<Workflows extends readonly [Any, Any], Prefix extends string = "">(
workflows: Workflows,
options?: {
readonly prefix?: Prefix;
},
): RpcGroup<ConvertRpcs<Workflows[number], Prefix>>;Converting
ConvertHttpApi type
Added in v4.0.0
Source
Maps each workflow to the HTTP API endpoints generated for execute, discard, and resume operations.
Signature
type ConvertHttpApi<Workflows extends Workflow.Any> =
Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error>
?
| HttpApiEndpoint.HttpApiEndpoint<
_Name,
"POST",
`/${Lowercase<_Name>}`,
never,
never,
_Payload,
never,
_Success,
_Error
>
| HttpApiEndpoint.HttpApiEndpoint<
`${_Name}Discard`,
"POST",
`/${Lowercase<_Name>}/discard`,
never,
never,
_Payload
>
| HttpApiEndpoint.HttpApiEndpoint<
`${_Name}Resume`,
"POST",
`/${Lowercase<_Name>}/resume`,
never,
never,
typeof ResumePayload
>
: never;ConvertRpcs type
Added in v4.0.0
Source
Maps each workflow to the RPC definitions generated for execute, discard, and resume operations.
Signature
type ConvertRpcs<Workflows extends Workflow.Any, Prefix extends string> =
Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error>
?
| Rpc.Rpc<`${Prefix}${_Name}`, _Payload, _Success, _Error>
| Rpc.Rpc<`${Prefix}${_Name}Discard`, _Payload>
| Rpc.Rpc<`${Prefix}${_Name}Resume`, typeof ResumePayload>
: never;
Derives an
HttpApiGroupfrom a list of workflows.