@temporal-contract/worker 0.0.7 → 0.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/README.md +46 -35
- package/dist/{activity-Csptpwgf.d.cts → activity-5pVNjW7l.d.cts} +1 -2
- package/dist/{activity-UOnp_bSX.d.mts → activity-BUEBZ7SL.d.mts} +1 -2
- package/dist/activity.d.cts +2 -2
- package/dist/activity.d.mts +2 -2
- package/dist/{errors-BqYWpdvd.d.cts → errors-CXpHOFmk.d.cts} +0 -1
- package/dist/{errors-C1RFkCuD.d.mts → errors-Vr-sKdW7.d.mts} +0 -1
- package/dist/worker.d.cts +1 -2
- package/dist/worker.d.mts +1 -2
- package/dist/workflow.d.cts +4 -5
- package/dist/workflow.d.mts +4 -5
- package/package.json +16 -14
package/README.md
CHANGED
|
@@ -14,43 +14,50 @@ pnpm add @temporal-contract/worker @temporal-contract/contract @temporalio/workf
|
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
16
|
// activities.ts
|
|
17
|
-
import { declareActivitiesHandler } from
|
|
17
|
+
import { declareActivitiesHandler, ActivityError } from "@temporal-contract/worker/activity";
|
|
18
|
+
import { Future, Result } from "@swan-io/boxed";
|
|
18
19
|
|
|
19
20
|
export const activities = declareActivitiesHandler({
|
|
20
21
|
contract: myContract,
|
|
21
22
|
activities: {
|
|
22
|
-
sendEmail:
|
|
23
|
-
|
|
23
|
+
sendEmail: ({ to, body }) => {
|
|
24
|
+
return Future.fromPromise(emailService.send({ to, body }))
|
|
25
|
+
.mapError(
|
|
26
|
+
(error) =>
|
|
27
|
+
new ActivityError(
|
|
28
|
+
"EMAIL_FAILED",
|
|
29
|
+
error instanceof Error ? error.message : "Failed to send email",
|
|
30
|
+
error,
|
|
31
|
+
),
|
|
32
|
+
)
|
|
33
|
+
.mapOk(() => ({ sent: true }));
|
|
34
|
+
},
|
|
35
|
+
},
|
|
24
36
|
});
|
|
25
37
|
|
|
26
38
|
// workflows.ts
|
|
27
|
-
import { declareWorkflow } from
|
|
39
|
+
import { declareWorkflow } from "@temporal-contract/worker/workflow";
|
|
28
40
|
|
|
29
41
|
export const processOrder = declareWorkflow({
|
|
30
|
-
workflowName:
|
|
42
|
+
workflowName: "processOrder",
|
|
31
43
|
contract: myContract,
|
|
32
|
-
implementation: async (
|
|
33
|
-
|
|
44
|
+
implementation: async ({ activities }, input) => {
|
|
45
|
+
// Activities return plain values (Result is unwrapped internally)
|
|
46
|
+
await activities.sendEmail({ to: "user@example.com", body: "Done!" });
|
|
34
47
|
return { success: true };
|
|
35
|
-
}
|
|
48
|
+
},
|
|
36
49
|
});
|
|
37
50
|
|
|
38
51
|
// worker.ts
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import
|
|
42
|
-
import myContract from './contract';
|
|
52
|
+
import { Worker } from "@temporalio/worker";
|
|
53
|
+
import { activities } from "./activities";
|
|
54
|
+
import myContract from "./contract";
|
|
43
55
|
|
|
44
56
|
async function run() {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
const worker = await createWorker({
|
|
50
|
-
contract: myContract,
|
|
51
|
-
connection,
|
|
52
|
-
workflowsPath: require.resolve('./workflows'),
|
|
57
|
+
const worker = await Worker.create({
|
|
58
|
+
workflowsPath: require.resolve("./workflows"),
|
|
53
59
|
activities,
|
|
60
|
+
taskQueue: myContract.taskQueue,
|
|
54
61
|
});
|
|
55
62
|
|
|
56
63
|
await worker.run();
|
|
@@ -65,33 +72,37 @@ Execute child workflows with type-safe Future/Result pattern. Supports both same
|
|
|
65
72
|
|
|
66
73
|
```typescript
|
|
67
74
|
// workflows.ts
|
|
68
|
-
import { declareWorkflow } from
|
|
75
|
+
import { declareWorkflow } from "@temporal-contract/worker/workflow";
|
|
69
76
|
|
|
70
77
|
export const parentWorkflow = declareWorkflow({
|
|
71
|
-
workflowName:
|
|
78
|
+
workflowName: "parentWorkflow",
|
|
72
79
|
contract: myContract,
|
|
73
|
-
implementation: async (
|
|
80
|
+
implementation: async ({ executeChildWorkflow }, input) => {
|
|
74
81
|
// Execute child workflow from same contract and wait for result
|
|
75
|
-
const childResult = await
|
|
82
|
+
const childResult = await executeChildWorkflow(myContract, "processPayment", {
|
|
76
83
|
workflowId: `payment-${input.orderId}`,
|
|
77
|
-
args: { amount: input.totalAmount }
|
|
84
|
+
args: { amount: input.totalAmount },
|
|
78
85
|
});
|
|
79
86
|
|
|
80
87
|
childResult.match({
|
|
81
|
-
Ok: (output) => console.log(
|
|
82
|
-
Error: (error) => console.error(
|
|
88
|
+
Ok: (output) => console.log("Payment processed:", output),
|
|
89
|
+
Error: (error) => console.error("Payment failed:", error),
|
|
83
90
|
});
|
|
84
91
|
|
|
85
92
|
// Execute child workflow from another contract (another worker)
|
|
86
|
-
const notificationResult = await
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
const notificationResult = await executeChildWorkflow(
|
|
94
|
+
notificationContract,
|
|
95
|
+
"sendNotification",
|
|
96
|
+
{
|
|
97
|
+
workflowId: `notification-${input.orderId}`,
|
|
98
|
+
args: { message: "Order received" },
|
|
99
|
+
},
|
|
100
|
+
);
|
|
90
101
|
|
|
91
102
|
// Or start child workflow without waiting
|
|
92
|
-
const handleResult = await
|
|
103
|
+
const handleResult = await startChildWorkflow(myContract, "sendEmail", {
|
|
93
104
|
workflowId: `email-${input.orderId}`,
|
|
94
|
-
args: { to:
|
|
105
|
+
args: { to: "user@example.com", body: "Order received" },
|
|
95
106
|
});
|
|
96
107
|
|
|
97
108
|
handleResult.match({
|
|
@@ -100,11 +111,11 @@ export const parentWorkflow = declareWorkflow({
|
|
|
100
111
|
const result = await handle.result();
|
|
101
112
|
// ...
|
|
102
113
|
},
|
|
103
|
-
Error: (error) => console.error(
|
|
114
|
+
Error: (error) => console.error("Failed to start:", error),
|
|
104
115
|
});
|
|
105
116
|
|
|
106
117
|
return { success: true };
|
|
107
|
-
}
|
|
118
|
+
},
|
|
108
119
|
});
|
|
109
120
|
```
|
|
110
121
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { g as WorkerInferOutput, h as WorkerInferInput } from "./errors-
|
|
1
|
+
import { g as WorkerInferOutput, h as WorkerInferInput } from "./errors-CXpHOFmk.cjs";
|
|
2
2
|
import { ActivityDefinition, ContractDefinition } from "@temporal-contract/contract";
|
|
3
3
|
import { Future, Result } from "@swan-io/boxed";
|
|
4
4
|
|
|
5
5
|
//#region src/activity-utils.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Extract activity definitions for a specific workflow from a contract
|
|
9
8
|
*
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { g as WorkerInferOutput, h as WorkerInferInput } from "./errors-
|
|
1
|
+
import { g as WorkerInferOutput, h as WorkerInferInput } from "./errors-Vr-sKdW7.mjs";
|
|
2
2
|
import { ActivityDefinition, ContractDefinition } from "@temporal-contract/contract";
|
|
3
3
|
import { Future, Result } from "@swan-io/boxed";
|
|
4
4
|
|
|
5
5
|
//#region src/activity-utils.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Extract activity definitions for a specific workflow from a contract
|
|
9
8
|
*
|
package/dist/activity.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as ActivityInputValidationError, r as ActivityOutputValidationError, t as ActivityDefinitionNotFoundError } from "./errors-
|
|
2
|
-
import { a as getWorkflowActivityNames, i as getWorkflowActivities, n as ActivityError, o as getWorkflowNames, r as declareActivitiesHandler, s as isWorkflowActivity, t as ActivitiesHandler } from "./activity-
|
|
1
|
+
import { n as ActivityInputValidationError, r as ActivityOutputValidationError, t as ActivityDefinitionNotFoundError } from "./errors-CXpHOFmk.cjs";
|
|
2
|
+
import { a as getWorkflowActivityNames, i as getWorkflowActivities, n as ActivityError, o as getWorkflowNames, r as declareActivitiesHandler, s as isWorkflowActivity, t as ActivitiesHandler } from "./activity-5pVNjW7l.cjs";
|
|
3
3
|
export { ActivitiesHandler, ActivityDefinitionNotFoundError, ActivityError, ActivityInputValidationError, ActivityOutputValidationError, declareActivitiesHandler, getWorkflowActivities, getWorkflowActivityNames, getWorkflowNames, isWorkflowActivity };
|
package/dist/activity.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as ActivityInputValidationError, r as ActivityOutputValidationError, t as ActivityDefinitionNotFoundError } from "./errors-
|
|
2
|
-
import { a as getWorkflowActivityNames, i as getWorkflowActivities, n as ActivityError, o as getWorkflowNames, r as declareActivitiesHandler, s as isWorkflowActivity, t as ActivitiesHandler } from "./activity-
|
|
1
|
+
import { n as ActivityInputValidationError, r as ActivityOutputValidationError, t as ActivityDefinitionNotFoundError } from "./errors-Vr-sKdW7.mjs";
|
|
2
|
+
import { a as getWorkflowActivityNames, i as getWorkflowActivities, n as ActivityError, o as getWorkflowNames, r as declareActivitiesHandler, s as isWorkflowActivity, t as ActivitiesHandler } from "./activity-BUEBZ7SL.mjs";
|
|
3
3
|
export { ActivitiesHandler, ActivityDefinitionNotFoundError, ActivityError, ActivityInputValidationError, ActivityOutputValidationError, declareActivitiesHandler, getWorkflowActivities, getWorkflowActivityNames, getWorkflowNames, isWorkflowActivity };
|
|
@@ -2,7 +2,6 @@ import { AnySchema } from "@temporal-contract/contract";
|
|
|
2
2
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
3
3
|
|
|
4
4
|
//#region src/types.d.ts
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* Infer input type from a definition (worker perspective)
|
|
8
7
|
* Worker receives the output type (after input schema parsing/transformation)
|
|
@@ -2,7 +2,6 @@ import { AnySchema } from "@temporal-contract/contract";
|
|
|
2
2
|
import { StandardSchemaV1 } from "@standard-schema/spec";
|
|
3
3
|
|
|
4
4
|
//#region src/types.d.ts
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* Infer input type from a definition (worker perspective)
|
|
8
7
|
* Worker receives the output type (after input schema parsing/transformation)
|
package/dist/worker.d.cts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { t as ActivitiesHandler } from "./activity-
|
|
1
|
+
import { t as ActivitiesHandler } from "./activity-5pVNjW7l.cjs";
|
|
2
2
|
import { ContractDefinition } from "@temporal-contract/contract";
|
|
3
3
|
import { Worker, WorkerOptions } from "@temporalio/worker";
|
|
4
4
|
|
|
5
5
|
//#region src/worker.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Options for creating a Temporal worker
|
|
9
8
|
*/
|
package/dist/worker.d.mts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { t as ActivitiesHandler } from "./activity-
|
|
1
|
+
import { t as ActivitiesHandler } from "./activity-BUEBZ7SL.mjs";
|
|
2
2
|
import { Worker, WorkerOptions } from "@temporalio/worker";
|
|
3
3
|
import { ContractDefinition } from "@temporal-contract/contract";
|
|
4
4
|
|
|
5
5
|
//#region src/worker.d.ts
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Options for creating a Temporal worker
|
|
9
8
|
*/
|
package/dist/workflow.d.cts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as ChildWorkflowNotFoundError, c as SignalInputValidationError, d as WorkflowInputValidationError, f as WorkflowOutputValidationError, g as WorkerInferOutput, h as WorkerInferInput, i as ChildWorkflowError, l as UpdateInputValidationError, m as ClientInferOutput, n as ActivityInputValidationError, o as QueryInputValidationError, p as ClientInferInput, r as ActivityOutputValidationError, s as QueryOutputValidationError, u as UpdateOutputValidationError } from "./errors-
|
|
1
|
+
import { a as ChildWorkflowNotFoundError, c as SignalInputValidationError, d as WorkflowInputValidationError, f as WorkflowOutputValidationError, g as WorkerInferOutput, h as WorkerInferInput, i as ChildWorkflowError, l as UpdateInputValidationError, m as ClientInferOutput, n as ActivityInputValidationError, o as QueryInputValidationError, p as ClientInferInput, r as ActivityOutputValidationError, s as QueryOutputValidationError, u as UpdateOutputValidationError } from "./errors-CXpHOFmk.cjs";
|
|
2
2
|
import { ActivityDefinition, ContractDefinition, QueryDefinition, SignalDefinition, UpdateDefinition, WorkflowDefinition } from "@temporal-contract/contract";
|
|
3
3
|
import { Future, Result } from "@temporal-contract/boxed";
|
|
4
4
|
import { ActivityOptions, ChildWorkflowOptions, WorkflowInfo } from "@temporalio/workflow";
|
|
5
5
|
|
|
6
6
|
//#region src/workflow.d.ts
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Create a typed workflow implementation with automatic validation
|
|
10
9
|
*
|
|
@@ -158,7 +157,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
158
157
|
* }
|
|
159
158
|
* ```
|
|
160
159
|
*/
|
|
161
|
-
defineSignal: <K
|
|
160
|
+
defineSignal: <K extends keyof TContract["workflows"][TWorkflowName]["signals"]>(signalName: K, handler: SignalHandlerImplementation<TContract["workflows"][TWorkflowName]["signals"][K] extends SignalDefinition ? TContract["workflows"][TWorkflowName]["signals"][K] : never>) => void;
|
|
162
161
|
/**
|
|
163
162
|
* Define a query handler within the workflow implementation
|
|
164
163
|
* Allows the query handler to access workflow state
|
|
@@ -176,7 +175,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
176
175
|
* }
|
|
177
176
|
* ```
|
|
178
177
|
*/
|
|
179
|
-
defineQuery: <K
|
|
178
|
+
defineQuery: <K extends keyof TContract["workflows"][TWorkflowName]["queries"]>(queryName: K, handler: QueryHandlerImplementation<TContract["workflows"][TWorkflowName]["queries"][K] extends QueryDefinition ? TContract["workflows"][TWorkflowName]["queries"][K] : never>) => void;
|
|
180
179
|
/**
|
|
181
180
|
* Define an update handler within the workflow implementation
|
|
182
181
|
* Allows the update handler to access and modify workflow state
|
|
@@ -195,7 +194,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
195
194
|
* }
|
|
196
195
|
* ```
|
|
197
196
|
*/
|
|
198
|
-
defineUpdate: <K
|
|
197
|
+
defineUpdate: <K extends keyof TContract["workflows"][TWorkflowName]["updates"]>(updateName: K, handler: UpdateHandlerImplementation<TContract["workflows"][TWorkflowName]["updates"][K] extends UpdateDefinition ? TContract["workflows"][TWorkflowName]["updates"][K] : never>) => void;
|
|
199
198
|
/**
|
|
200
199
|
* Start a child workflow and return a typed handle with Future/Result pattern
|
|
201
200
|
*
|
package/dist/workflow.d.mts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as ChildWorkflowNotFoundError, c as SignalInputValidationError, d as WorkflowInputValidationError, f as WorkflowOutputValidationError, g as WorkerInferOutput, h as WorkerInferInput, i as ChildWorkflowError, l as UpdateInputValidationError, m as ClientInferOutput, n as ActivityInputValidationError, o as QueryInputValidationError, p as ClientInferInput, r as ActivityOutputValidationError, s as QueryOutputValidationError, u as UpdateOutputValidationError } from "./errors-
|
|
1
|
+
import { a as ChildWorkflowNotFoundError, c as SignalInputValidationError, d as WorkflowInputValidationError, f as WorkflowOutputValidationError, g as WorkerInferOutput, h as WorkerInferInput, i as ChildWorkflowError, l as UpdateInputValidationError, m as ClientInferOutput, n as ActivityInputValidationError, o as QueryInputValidationError, p as ClientInferInput, r as ActivityOutputValidationError, s as QueryOutputValidationError, u as UpdateOutputValidationError } from "./errors-Vr-sKdW7.mjs";
|
|
2
2
|
import { Future, Result } from "@temporal-contract/boxed";
|
|
3
3
|
import { ActivityOptions, ChildWorkflowOptions, WorkflowInfo } from "@temporalio/workflow";
|
|
4
4
|
import { ActivityDefinition, ContractDefinition, QueryDefinition, SignalDefinition, UpdateDefinition, WorkflowDefinition } from "@temporal-contract/contract";
|
|
5
5
|
|
|
6
6
|
//#region src/workflow.d.ts
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Create a typed workflow implementation with automatic validation
|
|
10
9
|
*
|
|
@@ -158,7 +157,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
158
157
|
* }
|
|
159
158
|
* ```
|
|
160
159
|
*/
|
|
161
|
-
defineSignal: <K
|
|
160
|
+
defineSignal: <K extends keyof TContract["workflows"][TWorkflowName]["signals"]>(signalName: K, handler: SignalHandlerImplementation<TContract["workflows"][TWorkflowName]["signals"][K] extends SignalDefinition ? TContract["workflows"][TWorkflowName]["signals"][K] : never>) => void;
|
|
162
161
|
/**
|
|
163
162
|
* Define a query handler within the workflow implementation
|
|
164
163
|
* Allows the query handler to access workflow state
|
|
@@ -176,7 +175,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
176
175
|
* }
|
|
177
176
|
* ```
|
|
178
177
|
*/
|
|
179
|
-
defineQuery: <K
|
|
178
|
+
defineQuery: <K extends keyof TContract["workflows"][TWorkflowName]["queries"]>(queryName: K, handler: QueryHandlerImplementation<TContract["workflows"][TWorkflowName]["queries"][K] extends QueryDefinition ? TContract["workflows"][TWorkflowName]["queries"][K] : never>) => void;
|
|
180
179
|
/**
|
|
181
180
|
* Define an update handler within the workflow implementation
|
|
182
181
|
* Allows the update handler to access and modify workflow state
|
|
@@ -195,7 +194,7 @@ interface WorkflowContext<TContract extends ContractDefinition, TWorkflowName ex
|
|
|
195
194
|
* }
|
|
196
195
|
* ```
|
|
197
196
|
*/
|
|
198
|
-
defineUpdate: <K
|
|
197
|
+
defineUpdate: <K extends keyof TContract["workflows"][TWorkflowName]["updates"]>(updateName: K, handler: UpdateHandlerImplementation<TContract["workflows"][TWorkflowName]["updates"][K] extends UpdateDefinition ? TContract["workflows"][TWorkflowName]["updates"][K] : never>) => void;
|
|
199
198
|
/**
|
|
200
199
|
* Start a child workflow and return a typed handle with Future/Result pattern
|
|
201
200
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporal-contract/worker",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Worker utilities with Result/Future pattern for implementing temporal-contract workflows and activities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"contract",
|
|
@@ -64,22 +64,23 @@
|
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@standard-schema/spec": "1.1.0",
|
|
66
66
|
"@swan-io/boxed": "3.2.1",
|
|
67
|
-
"@temporal-contract/boxed": "0.0
|
|
68
|
-
"@temporal-contract/contract": "0.0
|
|
67
|
+
"@temporal-contract/boxed": "0.1.0",
|
|
68
|
+
"@temporal-contract/contract": "0.1.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@temporalio/client": "1.14.
|
|
72
|
-
"@temporalio/worker": "1.14.
|
|
73
|
-
"@temporalio/workflow": "1.14.
|
|
74
|
-
"@types/node": "25.0.
|
|
75
|
-
"@vitest/coverage-v8": "4.0.
|
|
76
|
-
"tsdown": "0.
|
|
71
|
+
"@temporalio/client": "1.14.1",
|
|
72
|
+
"@temporalio/worker": "1.14.1",
|
|
73
|
+
"@temporalio/workflow": "1.14.1",
|
|
74
|
+
"@types/node": "25.0.9",
|
|
75
|
+
"@vitest/coverage-v8": "4.0.17",
|
|
76
|
+
"tsdown": "0.20.0-beta.4",
|
|
77
77
|
"typescript": "5.9.3",
|
|
78
|
-
"vitest": "4.0.
|
|
79
|
-
"zod": "4.
|
|
80
|
-
"@temporal-contract/client": "0.0
|
|
81
|
-
"@temporal-contract/testing": "0.0
|
|
82
|
-
"@temporal-contract/tsconfig": "0.0
|
|
78
|
+
"vitest": "4.0.17",
|
|
79
|
+
"zod": "4.3.5",
|
|
80
|
+
"@temporal-contract/client": "0.1.0",
|
|
81
|
+
"@temporal-contract/testing": "0.1.0",
|
|
82
|
+
"@temporal-contract/tsconfig": "0.1.0",
|
|
83
|
+
"@temporal-contract/typedoc": "0.1.0"
|
|
83
84
|
},
|
|
84
85
|
"peerDependencies": {
|
|
85
86
|
"@temporalio/worker": "^1",
|
|
@@ -87,6 +88,7 @@
|
|
|
87
88
|
},
|
|
88
89
|
"scripts": {
|
|
89
90
|
"build": "tsdown src/activity.ts src/worker.ts src/workflow.ts --format cjs,esm --dts --clean",
|
|
91
|
+
"build:docs": "typedoc",
|
|
90
92
|
"dev": "tsdown src/activity.ts src/worker.ts src/workflow.ts --format cjs,esm --dts --watch",
|
|
91
93
|
"test": "vitest run --project unit",
|
|
92
94
|
"test:integration": "vitest run --project integration",
|