@dudousxd/nestjs-durable 0.48.1 → 0.49.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 +230 -139
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -21
- package/dist/index.d.ts +64 -21
- package/dist/index.js +123 -32
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/skills/durable-setup/SKILL.md +8 -4
- package/skills/durable-workflows/SKILL.md +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dudousxd/nestjs-durable",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.0",
|
|
4
4
|
"description": "Durable workflows for NestJS — module, decorators, discovery and boot recovery",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Davide Carvalho",
|
|
@@ -68,11 +68,11 @@
|
|
|
68
68
|
"@dudousxd/nestjs-diagnostics": "0.5.0",
|
|
69
69
|
"@tanstack/intent": "0.4.0",
|
|
70
70
|
"@dudousxd/durable-worker": "0.11.2",
|
|
71
|
-
"@dudousxd/nestjs-durable-core": "^0.
|
|
72
|
-
"@dudousxd/nestjs-durable-dashboard": "0.51.
|
|
73
|
-
"@dudousxd/nestjs-durable-testing": "^0.
|
|
74
|
-
"@dudousxd/nestjs-durable-transport-bullmq": "0.22.
|
|
75
|
-
"@dudousxd/nestjs-durable-transport-event-emitter": "^0.5.
|
|
71
|
+
"@dudousxd/nestjs-durable-core": "^0.81.0",
|
|
72
|
+
"@dudousxd/nestjs-durable-dashboard": "0.51.1",
|
|
73
|
+
"@dudousxd/nestjs-durable-testing": "^0.20.0",
|
|
74
|
+
"@dudousxd/nestjs-durable-transport-bullmq": "0.22.4",
|
|
75
|
+
"@dudousxd/nestjs-durable-transport-event-emitter": "^0.5.3"
|
|
76
76
|
},
|
|
77
77
|
"module": "./dist/index.js",
|
|
78
78
|
"exports": {
|
|
@@ -23,8 +23,9 @@ infrastructure (in-process transport, in-memory store) — swap the store/transp
|
|
|
23
23
|
|
|
24
24
|
## Setup
|
|
25
25
|
|
|
26
|
-
Install the module plus its core peer, a transport, and
|
|
27
|
-
runtime schemas
|
|
26
|
+
Install the module plus its core peer, a transport, and a schema library (optional —
|
|
27
|
+
`@Step({ input, output })` / `@Workflow({ input, output })` runtime schemas take a Standard Schema
|
|
28
|
+
such as zod, or a class-validator DTO class):
|
|
28
29
|
|
|
29
30
|
```bash
|
|
30
31
|
pnpm add @dudousxd/nestjs-durable @dudousxd/nestjs-durable-core \
|
|
@@ -172,8 +173,11 @@ return this.workflows.waitForRun(runId); // resolves once the run settles
|
|
|
172
173
|
```
|
|
173
174
|
|
|
174
175
|
`start` creates the run as `'pending'` (or `'suspended'` when `opts.startAt` is in the future)
|
|
175
|
-
and a worker runs the body asynchronously; only `waitForRun`
|
|
176
|
-
|
|
176
|
+
and a worker runs the body asynchronously; only `waitForRun` resolves with the settled outcome.
|
|
177
|
+
By default `waitForRun` settles on the first suspension too, so for a delayed start (or any run
|
|
178
|
+
that sleeps or waits on a signal) await the real result with
|
|
179
|
+
`waitForRun(runId, { until: 'terminal' })`. Source: packages/nestjs/src/workflow.service.ts,
|
|
180
|
+
`WorkflowEngine.waitForRun` in packages/core/src/engine.ts.
|
|
177
181
|
|
|
178
182
|
### 2. Leaving `autoSchema` on in production
|
|
179
183
|
|
|
@@ -96,7 +96,8 @@ const out = await ctx.step<ProcResult>('processing:proc', input);
|
|
|
96
96
|
`@Step()` (bare) derives the routing name from the method as `` `${ClassName}.${method}` ``;
|
|
97
97
|
`@Step('custom:name')` overrides it explicitly — needed for a cross-runtime contract where the other
|
|
98
98
|
side has no `@Step` of its own. `@Step({ name?, input?, output?, retries?, backoff?, backoffMs?,
|
|
99
|
-
backoffMaxMs?, jitter?, timeoutMs? })` additionally opts into RUNTIME zod
|
|
99
|
+
backoffMaxMs?, jitter?, timeoutMs? })` additionally opts into RUNTIME validation (a Standard Schema such as zod, or a class-validator DTO
|
|
100
|
+
class) (`input`
|
|
100
101
|
validates before the method runs, `output` validates its return value) and a def-level durable-retry
|
|
101
102
|
policy — a bare `@Step()` skips both and dispatches with no retry/timeout.
|
|
102
103
|
|