Skip to main content

Namespace: client

Client for communicating with Temporal Server.

Most functionality is available through WorkflowClient, but you can also call gRPC methods directly using workflowService and operatorService.

Usage

import { Connection, WorkflowClient } from '@temporalio/client';
import { example } from './workflows';
import { nanoid } from 'nanoid';

async function run() {
// Connect to the default Server location (localhost:7233)
const connection = await Connection.connect();
// In production, pass options to configure TLS and other settings:
// {
// address: 'foo.bar.tmprl.cloud',
// tls: {}
// }

const client = new WorkflowClient({
connection,
// namespace: 'foo.bar', // connects to 'default' namespace if not specified
});

const handle = await client.start(example, {
// type inference works! args: [name: string]
args: ['Temporal'],
taskQueue: 'hello-world',
// in practice, use a meaningful business id, eg customerId or transactionId
workflowId: 'workflow-' + nanoid(),
});
console.log(`Started workflow ${handle.workflowId}`);

// optional: wait for client result
console.log(await handle.result()); // Hello, Temporal!
}

run().catch((err) => {
console.error(err);
process.exit(1);
});

Enumerations

Classes

Interfaces

References

DataConverter

Re-exports DataConverter


Headers

Re-exports Headers


Next

Re-exports Next


defaultPayloadConverter

Re-exports defaultPayloadConverter

Type Aliases

ActivityInterface

Ƭ ActivityInterface: Record<string, ActivityFunction>

Mapping of Activity name to function

Deprecated

not required anymore, for untyped activities use UntypedActivities


AsyncCompletionClientOptions

Ƭ AsyncCompletionClientOptions: BaseClientOptions

Options used to configure AsyncCompletionClient


CommonWorkflowOptions

Ƭ CommonWorkflowOptions: BaseWorkflowOptions & WorkflowDurationOptions


CompiledScheduleAction

Ƭ CompiledScheduleAction: Replace<ScheduleDescriptionAction, { args: unknown[] ; workflowType: string }>


CompiledScheduleOptions

Ƭ CompiledScheduleOptions: Replace<ScheduleOptions, { action: CompiledScheduleAction }>


CompiledScheduleUpdateOptions

Ƭ CompiledScheduleUpdateOptions: Replace<ScheduleUpdateOptions, { action: CompiledScheduleAction }>


ConnectionOptionsWithDefaults

Ƭ ConnectionOptionsWithDefaults: Required<Omit<ConnectionOptions, "tls" | "connectTimeout">> & { connectTimeoutMs: number }


CreateScheduleOutput

Ƭ CreateScheduleOutput: Object

Type declaration

NameType
conflictTokenUint8Array

DayOfWeek

Ƭ DayOfWeek: typeof DAYS_OF_WEEK[number]


DescribeWorkflowExecutionResponse

Ƭ DescribeWorkflowExecutionResponse: IDescribeWorkflowExecutionResponse


GetWorkflowExecutionHistoryRequest

Ƭ GetWorkflowExecutionHistoryRequest: IGetWorkflowExecutionHistoryRequest


HealthService

Ƭ HealthService: Health


LoadedAsyncCompletionClientOptions

Ƭ LoadedAsyncCompletionClientOptions: LoadedWithDefaults<AsyncCompletionClientOptions>


LoadedClientOptions

Ƭ LoadedClientOptions: LoadedWithDefaults<ClientOptions>


LoadedScheduleClientOptions

Ƭ LoadedScheduleClientOptions: LoadedWithDefaults<ScheduleClientOptions>


LoadedWorkflowClientOptions

Ƭ LoadedWorkflowClientOptions: LoadedWithDefaults<WorkflowClientOptions>


LooseRange

Ƭ LooseRange<Unit>: Range<Unit> | { end?: Range<Unit>["end"] ; start: Range<Unit>["start"] ; step?: never } | Unit

A Range definition, with support for loose syntax.

For example:

3 ➡️ 3
{ start: 2 } ➡️ 2
{ start: 2, end: 4 } ➡️ 2, 3, 4
{ start: 2, end: 10, step: 3 } ➡️ 2, 5, 8

Type parameters

Name
Unit

Metadata

Ƭ Metadata: Record<string, grpc.MetadataValue>

Mapping of string to valid gRPC metadata value


Month

Ƭ Month: typeof MONTHS[number]


OperatorService

Ƭ OperatorService: OperatorService


Payload

Ƭ Payload: IPayload


ProtoFailure

Ƭ ProtoFailure: IFailure


RawWorkflowExecutionInfo

Ƭ RawWorkflowExecutionInfo: IWorkflowExecutionInfo


RequestCancelWorkflowExecutionResponse

Ƭ RequestCancelWorkflowExecutionResponse: IRequestCancelWorkflowExecutionResponse


ScheduleDescription

Ƭ ScheduleDescription: ScheduleSummary & { action: ScheduleDescriptionAction ; info: ScheduleSummary["info"] & { createdAt: Date ; lastUpdatedAt: Date | undefined ; numActionsMissedCatchupWindow: number ; numActionsSkippedOverlap: number ; numActionsTaken: number ; runningActions: ScheduleExecutionActionResult[] } ; policies: { catchupWindow: number ; overlap: ScheduleOverlapPolicy ; pauseOnFailure: boolean } ; state: ScheduleSummary["state"] & { remainingActions?: number } }

A detailed description of an exisiting Schedule, as returned by describe.


ScheduleDescriptionAction

Ƭ ScheduleDescriptionAction: ScheduleDescriptionStartWorkflowAction


ScheduleDescriptionStartWorkflowAction

Ƭ ScheduleDescriptionStartWorkflowAction: ScheduleSummaryStartWorkflowAction & Pick<WorkflowStartOptions<Workflow>, "taskQueue" | "workflowId" | "args" | "memo" | "searchAttributes" | "retry" | "workflowExecutionTimeout" | "workflowRunTimeout" | "workflowTaskTimeout">


ScheduleExecutionActionResult

Ƭ ScheduleExecutionActionResult: ScheduleExecutionStartWorkflowActionResult


ScheduleOptionsAction

Ƭ ScheduleOptionsAction: ScheduleOptionsStartWorkflowAction<Workflow>


ScheduleOptionsStartWorkflowAction

Ƭ ScheduleOptionsStartWorkflowAction<W>: { type: "startWorkflow" ; workflowType: string | W } & Pick<WorkflowStartOptions<W>, "taskQueue" | "args" | "memo" | "searchAttributes" | "retry" | "workflowExecutionTimeout" | "workflowRunTimeout" | "workflowTaskTimeout"> & { workflowId?: string }

Type parameters

NameType
Wextends Workflow

ScheduleOverlapPolicy2

Ƭ ScheduleOverlapPolicy2: keyof typeof ScheduleOverlapPolicy


ScheduleSpecDescription

Ƭ ScheduleSpecDescription: Omit<ScheduleSpec, "calendars" | "intervals" | "cronExpressions" | "skip" | "jitter"> & { calendars?: CalendarSpecDescription[] ; intervals?: IntervalSpecDescription[] ; jitter?: number ; skip?: CalendarSpecDescription[] }

The version of ScheduleSpec that you get back from describe and list


ScheduleSummaryAction

Ƭ ScheduleSummaryAction: ScheduleSummaryStartWorkflowAction


ScheduleUpdateOptions

Ƭ ScheduleUpdateOptions: Replace<Omit<ScheduleOptions, "scheduleId" | "memo" | "searchAttributes">, { action: Replace<ScheduleOptions["action"], { workflowId: string }> ; state: Omit<ScheduleOptions["state"], "triggerImmediately" | "backfill"> }>

The specification of an updated Schedule, as expected by update.


SearchAttributeValue

Ƭ SearchAttributeValue: string[] | number[] | boolean[] | Date[]


SearchAttributes

Ƭ SearchAttributes: Record<string, SearchAttributeValue | undefined>

If another SDK creates a Search Attribute that's not an array, we wrap it in an array.

Dates are serialized as ISO strings.


StartWorkflowExecutionRequest

Ƭ StartWorkflowExecutionRequest: IStartWorkflowExecutionRequest


TerminateWorkflowExecutionResponse

Ƭ TerminateWorkflowExecutionResponse: ITerminateWorkflowExecutionResponse


UntypedActivities

Ƭ UntypedActivities: Record<string, ActivityFunction>

Mapping of Activity name to function


WithCompiledWorkflowOptions

Ƭ WithCompiledWorkflowOptions<T>: Replace<T, { workflowExecutionTimeout?: IDuration ; workflowRunTimeout?: IDuration ; workflowTaskTimeout?: IDuration }>

Type parameters

NameType
Textends CommonWorkflowOptions

WithWorkflowArgs

Ƭ WithWorkflowArgs<W, T>: T & Parameters<W> extends [any, ...any[]] ? { args: Parameters<W> } : { args?: Parameters<W> }

Type parameters

NameType
Wextends Workflow
TT

Workflow

Ƭ Workflow: (...args: any[]) => WorkflowReturnType

Type declaration

▸ (...args): WorkflowReturnType

Broad Workflow function definition, specific Workflows will typically use a narrower type definition, e.g:

export async function myWorkflow(arg1: number, arg2: string): Promise<string>;
Parameters
NameType
...argsany[]
Returns

WorkflowReturnType


WorkflowClientCallsInterceptor

Ƭ WorkflowClientCallsInterceptor: WorkflowClientInterceptor

Deprecated

: Use WorkflowClientInterceptor instead


WorkflowExecutionDescription

Ƭ WorkflowExecutionDescription: Replace<WorkflowExecutionInfo, { raw: DescribeWorkflowExecutionResponse }>


WorkflowExecutionStatusName

Ƭ WorkflowExecutionStatusName: "UNSPECIFIED" | "RUNNING" | "COMPLETED" | "FAILED" | "CANCELLED" | "TERMINATED" | "CONTINUED_AS_NEW" | "TIMED_OUT" | "UNKNOWN"


WorkflowQueryType

Ƭ WorkflowQueryType: (...args: any[]) => any

Type declaration

▸ (...args): any

Parameters
NameType
...argsany[]
Returns

any


WorkflowResultType

Ƭ WorkflowResultType<W>: ReturnType<W> extends Promise<infer R> ? R : never

Get the "unwrapped" return type (without Promise) of the execute handler from Workflow type W

Type parameters

NameType
Wextends Workflow

WorkflowReturnType

Ƭ WorkflowReturnType: Promise<any>

Type that can be returned from a Workflow execute function


WorkflowService

Ƭ WorkflowService: WorkflowService


WorkflowSignalType

Ƭ WorkflowSignalType: (...args: any[]) => Promise<void> | void

Type declaration

▸ (...args): Promise<void> | void

Parameters
NameType
...argsany[]
Returns

Promise<void> | void


WorkflowSignalWithStartOptions

Ƭ WorkflowSignalWithStartOptions<SignalArgs>: SignalArgs extends [any, ...any[]] ? WorkflowSignalWithStartOptionsWithArgs<SignalArgs> : WorkflowSignalWithStartOptionsWithoutArgs<SignalArgs>

Type parameters

NameType
SignalArgsextends any[] = []

WorkflowStartOptions

Ƭ WorkflowStartOptions<T>: WithWorkflowArgs<T, WorkflowOptions>

Options for starting a Workflow

Type parameters

NameType
Textends Workflow = Workflow

Variables

DAYS_OF_WEEK

Const DAYS_OF_WEEK: readonly ["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"]


HealthService

HealthService: typeof Health


LOCAL_TARGET

Const LOCAL_TARGET: "127.0.0.1:7233"


MONTHS

Const MONTHS: readonly ["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"]


OperatorService

OperatorService: typeof OperatorService


WorkflowService

WorkflowService: typeof WorkflowService

Functions

compileWorkflowOptions

compileWorkflowOptions<T>(options): WithCompiledWorkflowOptions<T>

Type parameters

NameType
Textends CommonWorkflowOptions

Parameters

NameType
optionsT

Returns

WithCompiledWorkflowOptions<T>


defaultGrpcRetryOptions

defaultGrpcRetryOptions(options?): GrpcRetryOptions

Generates the default retry behavior based on given backoff options

Parameters

NameType
options?Partial<BackoffOptions>

Returns

GrpcRetryOptions


isRetryableError

isRetryableError(status): boolean

Parameters

NameType
statusStatusObject

Returns

boolean


isServerErrorResponse

isServerErrorResponse(err): err is ServerErrorResponse

Type assertion helper, assertion is mostly empty because any additional properties are optional.

Parameters

NameType
errunknown

Returns

err is ServerErrorResponse


makeGrpcRetryInterceptor

makeGrpcRetryInterceptor(retryOptions): Interceptor

Returns a GRPC interceptor that will perform automatic retries for some types of failed calls

Parameters

NameTypeDescription
retryOptionsGrpcRetryOptionsOptions for the retry interceptor

Returns

Interceptor