@temporal-contract/client 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +140 -156
- package/dist/index.d.cts +99 -81
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +99 -81
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +136 -152
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -14
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ActivityFailure, ApplicationFailure, CancelledFailure, ChildWorkflowFailure, ServerFailure, TerminatedFailure, TimeoutFailure } from "@temporalio/common";
|
|
2
|
+
import { ResultAsync } from "neverthrow";
|
|
3
|
+
import { ActivityDefinition, AnySchema, AnyWorkflowDefinition, ContractDefinition, QueryDefinition, SearchAttributeDefinition, SearchAttributeKindToType, SignalDefinition, SignalNamesOf, UpdateDefinition } from "@temporal-contract/contract";
|
|
2
4
|
import { Client, ScheduleClient, ScheduleDescription, ScheduleOptions, ScheduleOptionsStartWorkflowAction, ScheduleOverlapPolicy, ScheduleSpec, WorkflowHandle, WorkflowSignalWithStartOptions, WorkflowStartOptions } from "@temporalio/client";
|
|
3
|
-
import { ActivityDefinition, AnySchema, ContractDefinition, QueryDefinition, SearchAttributeDefinition, SearchAttributeKindToType, SignalDefinition, UpdateDefinition, WorkflowDefinition } from "@temporal-contract/contract";
|
|
4
5
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
5
6
|
|
|
6
7
|
//#region src/types.d.ts
|
|
@@ -26,7 +27,7 @@ type ClientInferOutput<T extends {
|
|
|
26
27
|
* Infer workflow function signature from client perspective
|
|
27
28
|
* Client sends z.output and receives z.input
|
|
28
29
|
*/
|
|
29
|
-
type ClientInferWorkflow<TWorkflow extends
|
|
30
|
+
type ClientInferWorkflow<TWorkflow extends AnyWorkflowDefinition> = (args: ClientInferInput<TWorkflow>) => Promise<ClientInferOutput<TWorkflow>>;
|
|
30
31
|
/**
|
|
31
32
|
* Infer activity function signature from client perspective
|
|
32
33
|
* Client sends z.output and receives z.input
|
|
@@ -34,19 +35,19 @@ type ClientInferWorkflow<TWorkflow extends WorkflowDefinition> = (args: ClientIn
|
|
|
34
35
|
type ClientInferActivity<TActivity extends ActivityDefinition> = (args: ClientInferInput<TActivity>) => Promise<ClientInferOutput<TActivity>>;
|
|
35
36
|
/**
|
|
36
37
|
* Infer signal handler signature from client perspective
|
|
37
|
-
* Client sends z.output and returns
|
|
38
|
+
* Client sends z.output and returns ResultAsync<void, Error>
|
|
38
39
|
*/
|
|
39
|
-
type ClientInferSignal<TSignal extends SignalDefinition> = (args: ClientInferInput<TSignal>) =>
|
|
40
|
+
type ClientInferSignal<TSignal extends SignalDefinition> = (args: ClientInferInput<TSignal>) => ResultAsync<void, Error>;
|
|
40
41
|
/**
|
|
41
42
|
* Infer query handler signature from client perspective
|
|
42
|
-
* Client sends z.output and receives z.input wrapped in
|
|
43
|
+
* Client sends z.output and receives z.input wrapped in ResultAsync<T, Error>
|
|
43
44
|
*/
|
|
44
|
-
type ClientInferQuery<TQuery extends QueryDefinition> = (args: ClientInferInput<TQuery>) =>
|
|
45
|
+
type ClientInferQuery<TQuery extends QueryDefinition> = (args: ClientInferInput<TQuery>) => ResultAsync<ClientInferOutput<TQuery>, Error>;
|
|
45
46
|
/**
|
|
46
47
|
* Infer update handler signature from client perspective
|
|
47
|
-
* Client sends z.output and receives z.input wrapped in
|
|
48
|
+
* Client sends z.output and receives z.input wrapped in ResultAsync<T, Error>
|
|
48
49
|
*/
|
|
49
|
-
type ClientInferUpdate<TUpdate extends UpdateDefinition> = (args: ClientInferInput<TUpdate>) =>
|
|
50
|
+
type ClientInferUpdate<TUpdate extends UpdateDefinition> = (args: ClientInferInput<TUpdate>) => ResultAsync<ClientInferOutput<TUpdate>, Error>;
|
|
50
51
|
/**
|
|
51
52
|
* CLIENT PERSPECTIVE - Contract-level types
|
|
52
53
|
*/
|
|
@@ -61,26 +62,37 @@ type ClientInferActivities<TContract extends ContractDefinition> = TContract["ac
|
|
|
61
62
|
/**
|
|
62
63
|
* Infer activities from a workflow definition (client perspective)
|
|
63
64
|
*/
|
|
64
|
-
type ClientInferWorkflowActivities<T extends
|
|
65
|
+
type ClientInferWorkflowActivities<T extends AnyWorkflowDefinition> = T["activities"] extends Record<string, ActivityDefinition> ? { [K in keyof T["activities"]]: ClientInferActivity<T["activities"][K]> } : {};
|
|
65
66
|
/**
|
|
66
67
|
* Infer signals from a workflow definition (client perspective)
|
|
67
68
|
*/
|
|
68
|
-
type ClientInferWorkflowSignals<T extends
|
|
69
|
+
type ClientInferWorkflowSignals<T extends AnyWorkflowDefinition> = T["signals"] extends Record<string, SignalDefinition> ? { [K in keyof T["signals"]]: ClientInferSignal<T["signals"][K]> } : {};
|
|
69
70
|
/**
|
|
70
71
|
* Infer queries from a workflow definition (client perspective)
|
|
71
72
|
*/
|
|
72
|
-
type ClientInferWorkflowQueries<T extends
|
|
73
|
+
type ClientInferWorkflowQueries<T extends AnyWorkflowDefinition> = T["queries"] extends Record<string, QueryDefinition> ? { [K in keyof T["queries"]]: ClientInferQuery<T["queries"][K]> } : {};
|
|
73
74
|
/**
|
|
74
75
|
* Infer updates from a workflow definition (client perspective)
|
|
75
76
|
*/
|
|
76
|
-
type ClientInferWorkflowUpdates<T extends
|
|
77
|
+
type ClientInferWorkflowUpdates<T extends AnyWorkflowDefinition> = T["updates"] extends Record<string, UpdateDefinition> ? { [K in keyof T["updates"]]: ClientInferUpdate<T["updates"][K]> } : {};
|
|
77
78
|
/**
|
|
78
79
|
* Infer all activities available in a workflow context (client perspective)
|
|
79
80
|
* Combines workflow-specific activities with global activities
|
|
80
81
|
*/
|
|
81
|
-
type ClientInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = ClientInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & ClientInferActivities<TContract>;
|
|
82
|
+
type ClientInferWorkflowContextActivities<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = ClientInferWorkflowActivities<TContract["workflows"][TWorkflowName]> & ClientInferActivities<TContract>;
|
|
82
83
|
//#endregion
|
|
83
84
|
//#region src/errors.d.ts
|
|
85
|
+
/**
|
|
86
|
+
* Union of the actionable Temporal failure types that can surface as the
|
|
87
|
+
* `cause` of a `WorkflowFailedError`. These all extend Temporal's internal
|
|
88
|
+
* `TemporalFailure` base class — we list them by leaf type rather than by
|
|
89
|
+
* the base class so consumer code can use a single `switch (true)` over
|
|
90
|
+
* `instanceof` discriminants without an exhaustiveness escape hatch.
|
|
91
|
+
*
|
|
92
|
+
* Re-exported from the package entry point so consumers can import it
|
|
93
|
+
* directly: `import type { TemporalFailure } from "@temporal-contract/client"`.
|
|
94
|
+
*/
|
|
95
|
+
type TemporalFailure = ApplicationFailure | CancelledFailure | TerminatedFailure | TimeoutFailure | ChildWorkflowFailure | ServerFailure | ActivityFailure;
|
|
84
96
|
/**
|
|
85
97
|
* Base class for all typed client errors with boxed pattern
|
|
86
98
|
*/
|
|
@@ -143,18 +155,24 @@ declare class WorkflowExecutionNotFoundError extends TypedClientError {
|
|
|
143
155
|
* on a workflow's result and the workflow completes with a failure —
|
|
144
156
|
* Temporal's `WorkflowFailedError`.
|
|
145
157
|
*
|
|
146
|
-
* `cause` is the *unwrapped* underlying
|
|
158
|
+
* `cause` is the *unwrapped* underlying {@link TemporalFailure} (typically an
|
|
147
159
|
* `ApplicationFailure`, `CancelledFailure`, `TerminatedFailure`, or
|
|
148
160
|
* `TimeoutFailure`) lifted from Temporal's wrapper, so callers can branch
|
|
149
161
|
* on the failure category in one step (`err.cause instanceof
|
|
150
|
-
* ApplicationFailure`) instead of unwrapping twice via the SDK wrapper.
|
|
162
|
+
* ApplicationFailure`) instead of unwrapping twice via the SDK wrapper. The
|
|
163
|
+
* SDK declares `WorkflowFailedError.cause` as the wider `Error | undefined`
|
|
164
|
+
* (since `cause` lives on `Error`), but the runtime guarantee — driven by
|
|
165
|
+
* Temporal's wire format — is that it is always a `TemporalFailure` subclass
|
|
166
|
+
* when the wrapper is surfaced. `classifyResultError` narrows that wider
|
|
167
|
+
* static type to the public {@link TemporalFailure} union with a cast, so
|
|
168
|
+
* consumers see the precise leaf-failure typing instead of a bare `Error`.
|
|
151
169
|
*
|
|
152
170
|
* Returned from `executeWorkflow` and `handle.result()`.
|
|
153
171
|
*/
|
|
154
172
|
declare class WorkflowFailedError extends TypedClientError {
|
|
155
173
|
readonly workflowId: string;
|
|
156
|
-
readonly cause?:
|
|
157
|
-
constructor(workflowId: string, cause?:
|
|
174
|
+
readonly cause?: TemporalFailure | undefined;
|
|
175
|
+
constructor(workflowId: string, cause?: TemporalFailure | undefined);
|
|
158
176
|
}
|
|
159
177
|
/**
|
|
160
178
|
* Thrown when workflow input or output validation fails
|
|
@@ -213,7 +231,7 @@ type TypedScheduleActionOverrides = Pick<ScheduleOptionsStartWorkflowAction<neve
|
|
|
213
231
|
* Workflow-action–level overrides nest under {@link action} so memo and
|
|
214
232
|
* other fields with the same name don't collide between the two scopes.
|
|
215
233
|
*/
|
|
216
|
-
type TypedScheduleCreateOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = {
|
|
234
|
+
type TypedScheduleCreateOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = {
|
|
217
235
|
/** Schedule ID. Recommended to use a meaningful business identifier. */scheduleId: string; /** When the schedule should fire (cron, interval, calendar). */
|
|
218
236
|
spec: ScheduleSpec; /** Workflow input — validated against the contract's input schema. */
|
|
219
237
|
args: ClientInferInput<TContract["workflows"][TWorkflowName]>; /** Temporal schedule policies (overlap, catchupWindow, pauseOnFailure, etc.). */
|
|
@@ -232,16 +250,16 @@ type TypedScheduleCreateOptions<TContract extends ContractDefinition, TWorkflowN
|
|
|
232
250
|
/**
|
|
233
251
|
* Typed handle to a schedule. Mirrors Temporal's `ScheduleHandle` lifecycle
|
|
234
252
|
* methods (`pause`, `unpause`, `trigger`, `describe`, `delete`) wrapped in
|
|
235
|
-
* the
|
|
236
|
-
* client.
|
|
253
|
+
* the neverthrow ResultAsync pattern so call sites match the rest of the
|
|
254
|
+
* typed client.
|
|
237
255
|
*/
|
|
238
256
|
type TypedScheduleHandle = {
|
|
239
257
|
/** This schedule's identifier. */readonly scheduleId: string; /** Pause the schedule. Optional note becomes part of the audit trail. */
|
|
240
|
-
pause: (note?: string) =>
|
|
241
|
-
unpause: (note?: string) =>
|
|
242
|
-
trigger: (overlap?: ScheduleOverlapPolicy) =>
|
|
243
|
-
delete: () =>
|
|
244
|
-
describe: () =>
|
|
258
|
+
pause: (note?: string) => ResultAsync<void, RuntimeClientError>; /** Resume a paused schedule. */
|
|
259
|
+
unpause: (note?: string) => ResultAsync<void, RuntimeClientError>; /** Fire the schedule's action immediately. */
|
|
260
|
+
trigger: (overlap?: ScheduleOverlapPolicy) => ResultAsync<void, RuntimeClientError>; /** Delete the schedule. */
|
|
261
|
+
delete: () => ResultAsync<void, RuntimeClientError>; /** Fetch the schedule's current description from the server. */
|
|
262
|
+
describe: () => ResultAsync<ScheduleDescription, RuntimeClientError>;
|
|
245
263
|
};
|
|
246
264
|
/**
|
|
247
265
|
* Typed wrapper around Temporal's `ScheduleClient`. Exposed as
|
|
@@ -261,7 +279,7 @@ declare class TypedScheduleClient<TContract extends ContractDefinition> {
|
|
|
261
279
|
* `workflowType` are pulled from the contract automatically; the typed
|
|
262
280
|
* options shape omits them so call sites don't have to repeat themselves.
|
|
263
281
|
*/
|
|
264
|
-
create<TWorkflowName extends keyof TContract["workflows"]>(workflowName: TWorkflowName, options: TypedScheduleCreateOptions<TContract, TWorkflowName>):
|
|
282
|
+
create<TWorkflowName extends keyof TContract["workflows"] & string>(workflowName: TWorkflowName, options: TypedScheduleCreateOptions<TContract, TWorkflowName>): ResultAsync<TypedScheduleHandle, WorkflowNotFoundError | WorkflowValidationError | RuntimeClientError>;
|
|
265
283
|
/**
|
|
266
284
|
* Get a typed handle to an existing schedule. Does not validate that the
|
|
267
285
|
* schedule exists — handle methods (`describe`, `pause`, etc.) will
|
|
@@ -282,8 +300,8 @@ declare class TypedScheduleClient<TContract extends ContractDefinition> {
|
|
|
282
300
|
* meaning the `searchAttributes` field is effectively absent from the start
|
|
283
301
|
* options for that workflow.
|
|
284
302
|
*/
|
|
285
|
-
type TypedSearchAttributeMap<TWorkflow extends
|
|
286
|
-
type TypedWorkflowStartOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"]> = Omit<WorkflowStartOptions, "taskQueue" | "args" | "searchAttributes" | "typedSearchAttributes"> & {
|
|
303
|
+
type TypedSearchAttributeMap<TWorkflow extends AnyWorkflowDefinition> = TWorkflow["searchAttributes"] extends Record<string, SearchAttributeDefinition> ? { [K in keyof TWorkflow["searchAttributes"]]?: SearchAttributeKindToType<TWorkflow["searchAttributes"][K]["kind"]> } : never;
|
|
304
|
+
type TypedWorkflowStartOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string> = Omit<WorkflowStartOptions, "taskQueue" | "args" | "searchAttributes" | "typedSearchAttributes"> & {
|
|
287
305
|
args: ClientInferInput<TContract["workflows"][TWorkflowName]>;
|
|
288
306
|
/**
|
|
289
307
|
* Indexed search attributes for the started workflow. Keys and value types
|
|
@@ -297,7 +315,7 @@ type TypedWorkflowStartOptions<TContract extends ContractDefinition, TWorkflowNa
|
|
|
297
315
|
* Options for {@link TypedClient.signalWithStart} — typed against both the
|
|
298
316
|
* workflow's input schema and the named signal's input schema.
|
|
299
317
|
*/
|
|
300
|
-
type TypedSignalWithStartOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"], TSignalName extends
|
|
318
|
+
type TypedSignalWithStartOptions<TContract extends ContractDefinition, TWorkflowName extends keyof TContract["workflows"] & string, TSignalName extends SignalNamesOf<TContract["workflows"][TWorkflowName]>> = Omit<WorkflowSignalWithStartOptions, "taskQueue" | "args" | "signal" | "signalArgs" | "searchAttributes" | "typedSearchAttributes"> & {
|
|
301
319
|
args: ClientInferInput<TContract["workflows"][TWorkflowName]>;
|
|
302
320
|
signalName: TSignalName;
|
|
303
321
|
signalArgs: TContract["workflows"][TWorkflowName]["signals"][TSignalName] extends SignalDefinition ? ClientInferInput<TContract["workflows"][TWorkflowName]["signals"][TSignalName]> : never;
|
|
@@ -314,7 +332,7 @@ type TypedSignalWithStartOptions<TContract extends ContractDefinition, TWorkflow
|
|
|
314
332
|
* to the standard handle so callers can correlate the signal with the
|
|
315
333
|
* (possibly pre-existing) workflow execution chain.
|
|
316
334
|
*/
|
|
317
|
-
type TypedWorkflowHandleWithSignaledRunId<TWorkflow extends
|
|
335
|
+
type TypedWorkflowHandleWithSignaledRunId<TWorkflow extends AnyWorkflowDefinition> = TypedWorkflowHandle<TWorkflow> & {
|
|
318
336
|
/**
|
|
319
337
|
* The Run Id of the bound Workflow at the time of `signalWithStart`. Since
|
|
320
338
|
* `signalWithStart` may have signaled an existing Workflow Chain, this is
|
|
@@ -323,48 +341,48 @@ type TypedWorkflowHandleWithSignaledRunId<TWorkflow extends WorkflowDefinition>
|
|
|
323
341
|
readonly signaledRunId: string;
|
|
324
342
|
};
|
|
325
343
|
/**
|
|
326
|
-
* Typed workflow handle with validated results using Result/
|
|
344
|
+
* Typed workflow handle with validated results using neverthrow Result/ResultAsync
|
|
327
345
|
*/
|
|
328
|
-
type TypedWorkflowHandle<TWorkflow extends
|
|
346
|
+
type TypedWorkflowHandle<TWorkflow extends AnyWorkflowDefinition> = {
|
|
329
347
|
workflowId: string;
|
|
330
348
|
/**
|
|
331
349
|
* Type-safe queries based on workflow definition with Result pattern
|
|
332
|
-
* Each query returns
|
|
350
|
+
* Each query returns ResultAsync<T, Error> instead of Promise<T>
|
|
333
351
|
*/
|
|
334
|
-
queries: { [K in keyof ClientInferWorkflowQueries<TWorkflow>]: ClientInferWorkflowQueries<TWorkflow>[K] extends ((...args: infer Args) =>
|
|
352
|
+
queries: { [K in keyof ClientInferWorkflowQueries<TWorkflow>]: ClientInferWorkflowQueries<TWorkflow>[K] extends ((...args: infer Args) => ResultAsync<infer R, Error>) ? (...args: Args) => ResultAsync<R, QueryValidationError | WorkflowExecutionNotFoundError | RuntimeClientError> : never };
|
|
335
353
|
/**
|
|
336
354
|
* Type-safe signals based on workflow definition with Result pattern
|
|
337
|
-
* Each signal returns
|
|
355
|
+
* Each signal returns ResultAsync<void, Error> instead of Promise<void>
|
|
338
356
|
*/
|
|
339
|
-
signals: { [K in keyof ClientInferWorkflowSignals<TWorkflow>]: ClientInferWorkflowSignals<TWorkflow>[K] extends ((...args: infer Args) =>
|
|
357
|
+
signals: { [K in keyof ClientInferWorkflowSignals<TWorkflow>]: ClientInferWorkflowSignals<TWorkflow>[K] extends ((...args: infer Args) => ResultAsync<void, Error>) ? (...args: Args) => ResultAsync<void, SignalValidationError | WorkflowExecutionNotFoundError | RuntimeClientError> : never };
|
|
340
358
|
/**
|
|
341
359
|
* Type-safe updates based on workflow definition with Result pattern
|
|
342
|
-
* Each update returns
|
|
360
|
+
* Each update returns ResultAsync<T, Error> instead of Promise<T>
|
|
343
361
|
*/
|
|
344
|
-
updates: { [K in keyof ClientInferWorkflowUpdates<TWorkflow>]: ClientInferWorkflowUpdates<TWorkflow>[K] extends ((...args: infer Args) =>
|
|
362
|
+
updates: { [K in keyof ClientInferWorkflowUpdates<TWorkflow>]: ClientInferWorkflowUpdates<TWorkflow>[K] extends ((...args: infer Args) => ResultAsync<infer R, Error>) ? (...args: Args) => ResultAsync<R, UpdateValidationError | WorkflowExecutionNotFoundError | RuntimeClientError> : never };
|
|
345
363
|
/**
|
|
346
364
|
* Get workflow result with Result pattern
|
|
347
365
|
*/
|
|
348
|
-
result: () =>
|
|
366
|
+
result: () => ResultAsync<ClientInferOutput<TWorkflow>, WorkflowValidationError | WorkflowFailedError | WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
349
367
|
/**
|
|
350
368
|
* Terminate workflow with Result pattern
|
|
351
369
|
*/
|
|
352
|
-
terminate: (reason?: string) =>
|
|
370
|
+
terminate: (reason?: string) => ResultAsync<void, WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
353
371
|
/**
|
|
354
372
|
* Cancel workflow with Result pattern
|
|
355
373
|
*/
|
|
356
|
-
cancel: () =>
|
|
374
|
+
cancel: () => ResultAsync<void, WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
357
375
|
/**
|
|
358
376
|
* Get workflow execution description including status and metadata
|
|
359
377
|
*/
|
|
360
|
-
describe: () =>
|
|
378
|
+
describe: () => ResultAsync<Awaited<ReturnType<WorkflowHandle["describe"]>>, WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
361
379
|
/**
|
|
362
380
|
* Fetch the workflow execution history
|
|
363
381
|
*/
|
|
364
|
-
fetchHistory: () =>
|
|
382
|
+
fetchHistory: () => ResultAsync<Awaited<ReturnType<WorkflowHandle["fetchHistory"]>>, WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
365
383
|
};
|
|
366
384
|
/**
|
|
367
|
-
* Typed Temporal client with Result/
|
|
385
|
+
* Typed Temporal client with neverthrow Result/ResultAsync pattern based on a contract
|
|
368
386
|
*
|
|
369
387
|
* Provides type-safe methods to start and execute workflows
|
|
370
388
|
* defined in the contract, with explicit error handling using Result pattern.
|
|
@@ -390,16 +408,16 @@ declare class TypedClient<TContract extends ContractDefinition> {
|
|
|
390
408
|
* args: { orderId: "sweep" },
|
|
391
409
|
* });
|
|
392
410
|
*
|
|
393
|
-
* result.match(
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
411
|
+
* result.match(
|
|
412
|
+
* async (handle) => { await handle.pause("maintenance"); },
|
|
413
|
+
* (error) => console.error("schedule create failed", error),
|
|
414
|
+
* );
|
|
397
415
|
* ```
|
|
398
416
|
*/
|
|
399
417
|
readonly schedule: TypedScheduleClient<TContract>;
|
|
400
418
|
private constructor();
|
|
401
419
|
/**
|
|
402
|
-
* Create a typed Temporal client with
|
|
420
|
+
* Create a typed Temporal client with neverthrow pattern from a contract
|
|
403
421
|
*
|
|
404
422
|
* @example
|
|
405
423
|
* ```ts
|
|
@@ -412,15 +430,15 @@ declare class TypedClient<TContract extends ContractDefinition> {
|
|
|
412
430
|
* args: { ... },
|
|
413
431
|
* });
|
|
414
432
|
*
|
|
415
|
-
* result.match(
|
|
416
|
-
*
|
|
417
|
-
*
|
|
418
|
-
*
|
|
433
|
+
* result.match(
|
|
434
|
+
* (output) => console.log('Success:', output),
|
|
435
|
+
* (error) => console.error('Failed:', error),
|
|
436
|
+
* );
|
|
419
437
|
* ```
|
|
420
438
|
*/
|
|
421
439
|
static create<TContract extends ContractDefinition>(contract: TContract, client: Client): TypedClient<TContract>;
|
|
422
440
|
/**
|
|
423
|
-
* Start a workflow and return a typed handle with
|
|
441
|
+
* Start a workflow and return a typed handle with ResultAsync pattern
|
|
424
442
|
*
|
|
425
443
|
* @example
|
|
426
444
|
* ```ts
|
|
@@ -431,20 +449,20 @@ declare class TypedClient<TContract extends ContractDefinition> {
|
|
|
431
449
|
* retry: { maximumAttempts: 3 },
|
|
432
450
|
* });
|
|
433
451
|
*
|
|
434
|
-
* handleResult.match(
|
|
435
|
-
*
|
|
452
|
+
* handleResult.match(
|
|
453
|
+
* async (handle) => {
|
|
436
454
|
* const result = await handle.result();
|
|
437
455
|
* // ... handle result
|
|
438
456
|
* },
|
|
439
|
-
*
|
|
440
|
-
*
|
|
457
|
+
* (error) => console.error('Failed to start:', error),
|
|
458
|
+
* );
|
|
441
459
|
* ```
|
|
442
460
|
*/
|
|
443
|
-
startWorkflow<TWorkflowName extends keyof TContract["workflows"]>(workflowName: TWorkflowName, {
|
|
461
|
+
startWorkflow<TWorkflowName extends keyof TContract["workflows"] & string>(workflowName: TWorkflowName, {
|
|
444
462
|
args,
|
|
445
463
|
searchAttributes,
|
|
446
464
|
...temporalOptions
|
|
447
|
-
}: TypedWorkflowStartOptions<TContract, TWorkflowName>):
|
|
465
|
+
}: TypedWorkflowStartOptions<TContract, TWorkflowName>): ResultAsync<TypedWorkflowHandle<TContract["workflows"][TWorkflowName]>, WorkflowNotFoundError | WorkflowValidationError | WorkflowAlreadyStartedError | RuntimeClientError>;
|
|
448
466
|
/**
|
|
449
467
|
* Send a signal to a workflow, starting it first if it doesn't already exist.
|
|
450
468
|
*
|
|
@@ -465,21 +483,21 @@ declare class TypedClient<TContract extends ContractDefinition> {
|
|
|
465
483
|
* signalArgs: { reason: 'duplicate' },
|
|
466
484
|
* });
|
|
467
485
|
*
|
|
468
|
-
* result.match(
|
|
469
|
-
*
|
|
470
|
-
*
|
|
471
|
-
*
|
|
486
|
+
* result.match(
|
|
487
|
+
* (handle) => console.log('signaled run', handle.signaledRunId),
|
|
488
|
+
* (error) => console.error('signalWithStart failed', error),
|
|
489
|
+
* );
|
|
472
490
|
* ```
|
|
473
491
|
*/
|
|
474
|
-
signalWithStart<TWorkflowName extends keyof TContract["workflows"], TSignalName extends
|
|
492
|
+
signalWithStart<TWorkflowName extends keyof TContract["workflows"] & string, TSignalName extends SignalNamesOf<TContract["workflows"][TWorkflowName]>>(workflowName: TWorkflowName, {
|
|
475
493
|
args,
|
|
476
494
|
signalName,
|
|
477
495
|
signalArgs,
|
|
478
496
|
searchAttributes,
|
|
479
497
|
...temporalOptions
|
|
480
|
-
}: TypedSignalWithStartOptions<TContract, TWorkflowName, TSignalName>):
|
|
498
|
+
}: TypedSignalWithStartOptions<TContract, TWorkflowName, TSignalName>): ResultAsync<TypedWorkflowHandleWithSignaledRunId<TContract["workflows"][TWorkflowName]>, WorkflowNotFoundError | WorkflowValidationError | SignalValidationError | WorkflowAlreadyStartedError | RuntimeClientError>;
|
|
481
499
|
/**
|
|
482
|
-
* Execute a workflow (start and wait for result) with
|
|
500
|
+
* Execute a workflow (start and wait for result) with ResultAsync pattern
|
|
483
501
|
*
|
|
484
502
|
* @example
|
|
485
503
|
* ```ts
|
|
@@ -490,35 +508,35 @@ declare class TypedClient<TContract extends ContractDefinition> {
|
|
|
490
508
|
* retry: { maximumAttempts: 3 },
|
|
491
509
|
* });
|
|
492
510
|
*
|
|
493
|
-
* result.match(
|
|
494
|
-
*
|
|
495
|
-
*
|
|
496
|
-
*
|
|
511
|
+
* result.match(
|
|
512
|
+
* (output) => console.log('Order processed:', output.status),
|
|
513
|
+
* (error) => console.error('Processing failed:', error),
|
|
514
|
+
* );
|
|
497
515
|
* ```
|
|
498
516
|
*/
|
|
499
|
-
executeWorkflow<TWorkflowName extends keyof TContract["workflows"]>(workflowName: TWorkflowName, {
|
|
517
|
+
executeWorkflow<TWorkflowName extends keyof TContract["workflows"] & string>(workflowName: TWorkflowName, {
|
|
500
518
|
args,
|
|
501
519
|
searchAttributes,
|
|
502
520
|
...temporalOptions
|
|
503
|
-
}: TypedWorkflowStartOptions<TContract, TWorkflowName>):
|
|
521
|
+
}: TypedWorkflowStartOptions<TContract, TWorkflowName>): ResultAsync<ClientInferOutput<TContract["workflows"][TWorkflowName]>, WorkflowNotFoundError | WorkflowValidationError | WorkflowAlreadyStartedError | WorkflowFailedError | WorkflowExecutionNotFoundError | RuntimeClientError>;
|
|
504
522
|
/**
|
|
505
|
-
* Get a handle to an existing workflow with
|
|
523
|
+
* Get a handle to an existing workflow with ResultAsync pattern
|
|
506
524
|
*
|
|
507
525
|
* @example
|
|
508
526
|
* ```ts
|
|
509
527
|
* const handleResult = await client.getHandle('processOrder', 'order-123');
|
|
510
|
-
* handleResult.match(
|
|
511
|
-
*
|
|
528
|
+
* handleResult.match(
|
|
529
|
+
* async (handle) => {
|
|
512
530
|
* const result = await handle.result();
|
|
513
531
|
* // ... handle result
|
|
514
532
|
* },
|
|
515
|
-
*
|
|
516
|
-
*
|
|
533
|
+
* (error) => console.error('Failed to get handle:', error),
|
|
534
|
+
* );
|
|
517
535
|
* ```
|
|
518
536
|
*/
|
|
519
|
-
getHandle<TWorkflowName extends keyof TContract["workflows"]>(workflowName: TWorkflowName, workflowId: string):
|
|
537
|
+
getHandle<TWorkflowName extends keyof TContract["workflows"] & string>(workflowName: TWorkflowName, workflowId: string): ResultAsync<TypedWorkflowHandle<TContract["workflows"][TWorkflowName]>, WorkflowNotFoundError | RuntimeClientError>;
|
|
520
538
|
private createTypedHandle;
|
|
521
539
|
}
|
|
522
540
|
//#endregion
|
|
523
|
-
export { type ClientInferActivities, type ClientInferActivity, type ClientInferInput, type ClientInferOutput, type ClientInferQuery, type ClientInferSignal, type ClientInferUpdate, type ClientInferWorkflow, type ClientInferWorkflowActivities, type ClientInferWorkflowContextActivities, type ClientInferWorkflowQueries, type ClientInferWorkflowSignals, type ClientInferWorkflowUpdates, type ClientInferWorkflows, QueryValidationError, RuntimeClientError, SignalValidationError, TypedClient, type TypedScheduleActionOverrides, TypedScheduleClient, type TypedScheduleCreateOptions, type TypedScheduleHandle, type TypedSignalWithStartOptions, type TypedWorkflowHandle, type TypedWorkflowHandleWithSignaledRunId, type TypedWorkflowStartOptions, UpdateValidationError, WorkflowAlreadyStartedError, WorkflowExecutionNotFoundError, WorkflowFailedError, WorkflowNotFoundError, WorkflowValidationError };
|
|
541
|
+
export { type ClientInferActivities, type ClientInferActivity, type ClientInferInput, type ClientInferOutput, type ClientInferQuery, type ClientInferSignal, type ClientInferUpdate, type ClientInferWorkflow, type ClientInferWorkflowActivities, type ClientInferWorkflowContextActivities, type ClientInferWorkflowQueries, type ClientInferWorkflowSignals, type ClientInferWorkflowUpdates, type ClientInferWorkflows, QueryValidationError, RuntimeClientError, SignalValidationError, type TemporalFailure, TypedClient, type TypedScheduleActionOverrides, TypedScheduleClient, type TypedScheduleCreateOptions, type TypedScheduleHandle, type TypedSignalWithStartOptions, type TypedWorkflowHandle, type TypedWorkflowHandleWithSignaledRunId, type TypedWorkflowStartOptions, UpdateValidationError, WorkflowAlreadyStartedError, WorkflowExecutionNotFoundError, WorkflowFailedError, WorkflowNotFoundError, WorkflowValidationError };
|
|
524
542
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/errors.ts","../src/schedule.ts","../src/client.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/errors.ts","../src/schedule.ts","../src/client.ts"],"mappings":"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"}
|