@trigger.dev/sdk 3.2.2 → 3.3.1
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/commonjs/v3/batch.d.ts +28 -0
- package/dist/commonjs/v3/batch.js +52 -0
- package/dist/commonjs/v3/batch.js.map +1 -0
- package/dist/commonjs/v3/index.d.ts +2 -1
- package/dist/commonjs/v3/index.js +1 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/runs.d.ts +102 -12
- package/dist/commonjs/v3/runs.js +93 -0
- package/dist/commonjs/v3/runs.js.map +1 -1
- package/dist/commonjs/v3/shared.d.ts +300 -8
- package/dist/commonjs/v3/shared.js +624 -98
- package/dist/commonjs/v3/shared.js.map +1 -1
- package/dist/commonjs/v3/tasks.d.ts +2 -2
- package/dist/commonjs/v3/tasks.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/batch.d.ts +28 -0
- package/dist/esm/v3/batch.js +49 -0
- package/dist/esm/v3/batch.js.map +1 -0
- package/dist/esm/v3/index.d.ts +2 -1
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/runs.d.ts +102 -12
- package/dist/esm/v3/runs.js +93 -0
- package/dist/esm/v3/runs.js.map +1 -1
- package/dist/esm/v3/shared.d.ts +300 -8
- package/dist/esm/v3/shared.js +621 -99
- package/dist/esm/v3/shared.js.map +1 -1
- package/dist/esm/v3/tasks.d.ts +2 -2
- package/dist/esm/v3/tasks.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ApiPromise, ApiRequestOptions, RetrieveBatchResponse } from "@trigger.dev/core/v3";
|
|
2
|
+
import { batchTriggerById, batchTriggerByIdAndWait, batchTriggerTasks, batchTriggerAndWaitTasks } from "./shared.js";
|
|
3
|
+
export declare const batch: {
|
|
4
|
+
trigger: typeof batchTriggerById;
|
|
5
|
+
triggerAndWait: typeof batchTriggerByIdAndWait;
|
|
6
|
+
triggerByTask: typeof batchTriggerTasks;
|
|
7
|
+
triggerByTaskAndWait: typeof batchTriggerAndWaitTasks;
|
|
8
|
+
retrieve: typeof retrieveBatch;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Retrieves details about a specific batch by its ID.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} batchId - The unique identifier of the batch to retrieve
|
|
14
|
+
* @param {ApiRequestOptions} [requestOptions] - Optional API request configuration options
|
|
15
|
+
* @returns {ApiPromise<RetrieveBatchResponse>} A promise that resolves with the batch details
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // First trigger a batch
|
|
19
|
+
* const response = await batch.trigger([
|
|
20
|
+
* { id: "simple-task", payload: { message: "Hello, World!" } }
|
|
21
|
+
* ]);
|
|
22
|
+
*
|
|
23
|
+
* // Then retrieve the batch details
|
|
24
|
+
* const batchDetails = await batch.retrieve(response.batchId);
|
|
25
|
+
* console.log("batch", batchDetails);
|
|
26
|
+
*/
|
|
27
|
+
declare function retrieveBatch(batchId: string, requestOptions?: ApiRequestOptions): ApiPromise<RetrieveBatchResponse>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.batch = void 0;
|
|
4
|
+
const v3_1 = require("@trigger.dev/core/v3");
|
|
5
|
+
const shared_js_1 = require("./shared.js");
|
|
6
|
+
const tracer_js_1 = require("./tracer.js");
|
|
7
|
+
exports.batch = {
|
|
8
|
+
trigger: shared_js_1.batchTriggerById,
|
|
9
|
+
triggerAndWait: shared_js_1.batchTriggerByIdAndWait,
|
|
10
|
+
triggerByTask: shared_js_1.batchTriggerTasks,
|
|
11
|
+
triggerByTaskAndWait: shared_js_1.batchTriggerAndWaitTasks,
|
|
12
|
+
retrieve: retrieveBatch,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves details about a specific batch by its ID.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} batchId - The unique identifier of the batch to retrieve
|
|
18
|
+
* @param {ApiRequestOptions} [requestOptions] - Optional API request configuration options
|
|
19
|
+
* @returns {ApiPromise<RetrieveBatchResponse>} A promise that resolves with the batch details
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // First trigger a batch
|
|
23
|
+
* const response = await batch.trigger([
|
|
24
|
+
* { id: "simple-task", payload: { message: "Hello, World!" } }
|
|
25
|
+
* ]);
|
|
26
|
+
*
|
|
27
|
+
* // Then retrieve the batch details
|
|
28
|
+
* const batchDetails = await batch.retrieve(response.batchId);
|
|
29
|
+
* console.log("batch", batchDetails);
|
|
30
|
+
*/
|
|
31
|
+
function retrieveBatch(batchId, requestOptions) {
|
|
32
|
+
const apiClient = v3_1.apiClientManager.clientOrThrow();
|
|
33
|
+
const $requestOptions = (0, v3_1.mergeRequestOptions)({
|
|
34
|
+
tracer: tracer_js_1.tracer,
|
|
35
|
+
name: "batch.retrieve()",
|
|
36
|
+
icon: "batch",
|
|
37
|
+
attributes: {
|
|
38
|
+
batchId: batchId,
|
|
39
|
+
...(0, v3_1.accessoryAttributes)({
|
|
40
|
+
items: [
|
|
41
|
+
{
|
|
42
|
+
text: batchId,
|
|
43
|
+
variant: "normal",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
style: "codepath",
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
}, requestOptions);
|
|
50
|
+
return apiClient.retrieveBatch(batchId, $requestOptions);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/v3/batch.ts"],"names":[],"mappings":";;;AAAA,6CAO8B;AAC9B,2CAKqB;AACrB,2CAAqC;AAExB,QAAA,KAAK,GAAG;IACnB,OAAO,EAAE,4BAAgB;IACzB,cAAc,EAAE,mCAAuB;IACvC,aAAa,EAAE,6BAAiB;IAChC,oBAAoB,EAAE,oCAAwB;IAC9C,QAAQ,EAAE,aAAa;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,aAAa,CACpB,OAAe,EACf,cAAkC;IAElC,MAAM,SAAS,GAAG,qBAAgB,CAAC,aAAa,EAAE,CAAC;IAEnD,MAAM,eAAe,GAAG,IAAA,wBAAmB,EACzC;QACE,MAAM,EAAN,kBAAM;QACN,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE;YACV,OAAO,EAAE,OAAO;YAChB,GAAG,IAAA,wBAAmB,EAAC;gBACrB,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,QAAQ;qBAClB;iBACF;gBACD,KAAK,EAAE,UAAU;aAClB,CAAC;SACH;KACF,EACD,cAAc,CACf,CAAC;IAEF,OAAO,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -3,6 +3,7 @@ export * from "./config.js";
|
|
|
3
3
|
export { retry, type RetryOptions } from "./retry.js";
|
|
4
4
|
export { queue } from "./shared.js";
|
|
5
5
|
export * from "./tasks.js";
|
|
6
|
+
export * from "./batch.js";
|
|
6
7
|
export * from "./wait.js";
|
|
7
8
|
export * from "./waitUntil.js";
|
|
8
9
|
export * from "./usage.js";
|
|
@@ -16,7 +17,7 @@ import type { Context } from "./shared.js";
|
|
|
16
17
|
import type { ApiClientConfiguration } from "@trigger.dev/core/v3";
|
|
17
18
|
export type { ApiClientConfiguration };
|
|
18
19
|
export { ApiError, AuthenticationError, BadRequestError, ConflictError, InternalServerError, NotFoundError, PermissionDeniedError, RateLimitError, UnprocessableEntityError, AbortTaskRunError, logger, type LogLevel, } from "@trigger.dev/core/v3";
|
|
19
|
-
export { runs, type RunShape, type AnyRunShape, type TaskRunShape, type RealtimeRun, type RetrieveRunResult, type AnyRetrieveRunResult, } from "./runs.js";
|
|
20
|
+
export { runs, type RunShape, type AnyRunShape, type TaskRunShape, type RealtimeRun, type AnyRealtimeRun, type RetrieveRunResult, type AnyRetrieveRunResult, } from "./runs.js";
|
|
20
21
|
export * as schedules from "./schedules/index.js";
|
|
21
22
|
export * as envvars from "./envvars.js";
|
|
22
23
|
export type { ImportEnvironmentVariablesParams } from "./envvars.js";
|
|
@@ -34,6 +34,7 @@ Object.defineProperty(exports, "retry", { enumerable: true, get: function () { r
|
|
|
34
34
|
var shared_js_1 = require("./shared.js");
|
|
35
35
|
Object.defineProperty(exports, "queue", { enumerable: true, get: function () { return shared_js_1.queue; } });
|
|
36
36
|
__exportStar(require("./tasks.js"), exports);
|
|
37
|
+
__exportStar(require("./batch.js"), exports);
|
|
37
38
|
__exportStar(require("./wait.js"), exports);
|
|
38
39
|
__exportStar(require("./waitUntil.js"), exports);
|
|
39
40
|
__exportStar(require("./usage.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,uCAAsD;AAA7C,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,kGAAA,KAAK,OAAA;AACd,6CAA2B;AAC3B,4CAA0B;AAC1B,iDAA+B;AAC/B,6CAA2B;AAC3B,uDAAqC;AACrC,4CAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,iDAA+B;AAS/B,2CAa8B;AAZ5B,8FAAA,QAAQ,OAAA;AACR,yGAAA,mBAAmB,OAAA;AACnB,qGAAA,eAAe,OAAA;AACf,mGAAA,aAAa,OAAA;AACb,yGAAA,mBAAmB,OAAA;AACnB,mGAAA,aAAa,OAAA;AACb,2GAAA,qBAAqB,OAAA;AACrB,oGAAA,cAAc,OAAA;AACd,8GAAA,wBAAwB,OAAA;AACxB,uGAAA,iBAAiB,OAAA;AACjB,4FAAA,MAAM,OAAA;AAIR,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,8CAA4B;AAC5B,uCAAsD;AAA7C,iGAAA,KAAK,OAAA;AACd,yCAAoC;AAA3B,kGAAA,KAAK,OAAA;AACd,6CAA2B;AAC3B,6CAA2B;AAC3B,4CAA0B;AAC1B,iDAA+B;AAC/B,6CAA2B;AAC3B,uDAAqC;AACrC,4CAA0B;AAC1B,gDAA8B;AAC9B,+CAA6B;AAC7B,iDAA+B;AAS/B,2CAa8B;AAZ5B,8FAAA,QAAQ,OAAA;AACR,yGAAA,mBAAmB,OAAA;AACnB,qGAAA,eAAe,OAAA;AACf,mGAAA,aAAa,OAAA;AACb,yGAAA,mBAAmB,OAAA;AACnB,mGAAA,aAAa,OAAA;AACb,2GAAA,qBAAqB,OAAA;AACrB,oGAAA,cAAc,OAAA;AACd,8GAAA,wBAAwB,OAAA;AACxB,uGAAA,iBAAiB,OAAA;AACjB,4FAAA,MAAM,OAAA;AAIR,qCASmB;AARjB,+FAAA,IAAI,OAAA;AASN,kEAAkD;AAClD,wDAAwC;AAGxC,qCAA4C;AAAnC,oGAAA,SAAS,OAAA;AAAE,+FAAA,IAAI,OAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { AnyRetrieveRunResult, AnyRunShape, ApiRequestOptions, InferRunTypes, ListProjectRunsQueryParams, ListRunsQueryParams, RescheduleRunRequestBody, RetrieveRunResult, RunShape, RealtimeRun, RunSubscription, TaskRunShape } from "@trigger.dev/core/v3";
|
|
1
|
+
import type { AnyRetrieveRunResult, AnyRunShape, ApiRequestOptions, InferRunTypes, ListProjectRunsQueryParams, ListRunsQueryParams, RescheduleRunRequestBody, RetrieveRunResult, RunShape, RealtimeRun, AnyRealtimeRun, RunSubscription, TaskRunShape, AnyBatchedRunHandle } from "@trigger.dev/core/v3";
|
|
2
2
|
import { ApiPromise, CanceledRunResponse, CursorPagePromise, ListRunResponseItem, ReplayRunResponse, RetrieveRunResponse } from "@trigger.dev/core/v3";
|
|
3
3
|
import { AnyRunHandle, AnyTask } from "./shared.js";
|
|
4
|
-
export type { AnyRetrieveRunResult, AnyRunShape, RetrieveRunResult, RunShape, TaskRunShape, RealtimeRun, };
|
|
4
|
+
export type { AnyRetrieveRunResult, AnyRunShape, RetrieveRunResult, RunShape, TaskRunShape, RealtimeRun, AnyRealtimeRun, };
|
|
5
5
|
export declare const runs: {
|
|
6
6
|
replay: typeof replayRun;
|
|
7
7
|
cancel: typeof cancelRun;
|
|
@@ -11,12 +11,13 @@ export declare const runs: {
|
|
|
11
11
|
poll: typeof poll;
|
|
12
12
|
subscribeToRun: typeof subscribeToRun;
|
|
13
13
|
subscribeToRunsWithTag: typeof subscribeToRunsWithTag;
|
|
14
|
+
subscribeToBatch: typeof subscribeToRunsInBatch;
|
|
14
15
|
};
|
|
15
16
|
export type ListRunsItem = ListRunResponseItem;
|
|
16
17
|
declare function listRuns(projectRef: string, params?: ListProjectRunsQueryParams, requestOptions?: ApiRequestOptions): CursorPagePromise<typeof ListRunResponseItem>;
|
|
17
18
|
declare function listRuns(params?: ListRunsQueryParams, requestOptions?: ApiRequestOptions): CursorPagePromise<typeof ListRunResponseItem>;
|
|
18
|
-
type RunId<TRunId> = TRunId extends AnyRunHandle ? TRunId : TRunId extends AnyTask ? string : TRunId extends string ? TRunId : never;
|
|
19
|
-
declare function retrieveRun<TRunId extends AnyRunHandle | AnyTask | string>(runId: RunId<TRunId>, requestOptions?: ApiRequestOptions): ApiPromise<RetrieveRunResult<TRunId>>;
|
|
19
|
+
type RunId<TRunId> = TRunId extends AnyRunHandle | AnyBatchedRunHandle ? TRunId : TRunId extends AnyTask ? string : TRunId extends string ? TRunId : never;
|
|
20
|
+
declare function retrieveRun<TRunId extends AnyRunHandle | AnyBatchedRunHandle | AnyTask | string>(runId: RunId<TRunId>, requestOptions?: ApiRequestOptions): ApiPromise<RetrieveRunResult<TRunId>>;
|
|
20
21
|
declare function replayRun(runId: string, requestOptions?: ApiRequestOptions): ApiPromise<ReplayRunResponse>;
|
|
21
22
|
declare function cancelRun(runId: string, requestOptions?: ApiRequestOptions): ApiPromise<CanceledRunResponse>;
|
|
22
23
|
declare function rescheduleRun(runId: string, body: RescheduleRunRequestBody, requestOptions?: ApiRequestOptions): ApiPromise<RetrieveRunResponse>;
|
|
@@ -81,7 +82,7 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
81
82
|
baseCostInCents: number;
|
|
82
83
|
taskIdentifier: string;
|
|
83
84
|
depth: number;
|
|
84
|
-
triggerFunction: "trigger" | "
|
|
85
|
+
triggerFunction: "trigger" | "batchTrigger" | "triggerAndWait" | "batchTriggerAndWait";
|
|
85
86
|
isQueued: boolean;
|
|
86
87
|
isExecuting: boolean;
|
|
87
88
|
isCompleted: boolean;
|
|
@@ -92,10 +93,10 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
92
93
|
metadata?: Record<string, any> | undefined;
|
|
93
94
|
startedAt?: Date | undefined;
|
|
94
95
|
idempotencyKey?: string | undefined;
|
|
96
|
+
ttl?: string | undefined;
|
|
95
97
|
batchId?: string | undefined;
|
|
96
98
|
finishedAt?: Date | undefined;
|
|
97
99
|
delayedUntil?: Date | undefined;
|
|
98
|
-
ttl?: string | undefined;
|
|
99
100
|
expiredAt?: Date | undefined;
|
|
100
101
|
} | undefined;
|
|
101
102
|
parent?: {
|
|
@@ -110,7 +111,7 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
110
111
|
baseCostInCents: number;
|
|
111
112
|
taskIdentifier: string;
|
|
112
113
|
depth: number;
|
|
113
|
-
triggerFunction: "trigger" | "
|
|
114
|
+
triggerFunction: "trigger" | "batchTrigger" | "triggerAndWait" | "batchTriggerAndWait";
|
|
114
115
|
isQueued: boolean;
|
|
115
116
|
isExecuting: boolean;
|
|
116
117
|
isCompleted: boolean;
|
|
@@ -121,10 +122,10 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
121
122
|
metadata?: Record<string, any> | undefined;
|
|
122
123
|
startedAt?: Date | undefined;
|
|
123
124
|
idempotencyKey?: string | undefined;
|
|
125
|
+
ttl?: string | undefined;
|
|
124
126
|
batchId?: string | undefined;
|
|
125
127
|
finishedAt?: Date | undefined;
|
|
126
128
|
delayedUntil?: Date | undefined;
|
|
127
|
-
ttl?: string | undefined;
|
|
128
129
|
expiredAt?: Date | undefined;
|
|
129
130
|
} | undefined;
|
|
130
131
|
children?: {
|
|
@@ -139,7 +140,7 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
139
140
|
baseCostInCents: number;
|
|
140
141
|
taskIdentifier: string;
|
|
141
142
|
depth: number;
|
|
142
|
-
triggerFunction: "trigger" | "
|
|
143
|
+
triggerFunction: "trigger" | "batchTrigger" | "triggerAndWait" | "batchTriggerAndWait";
|
|
143
144
|
isQueued: boolean;
|
|
144
145
|
isExecuting: boolean;
|
|
145
146
|
isCompleted: boolean;
|
|
@@ -150,15 +151,15 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
150
151
|
metadata?: Record<string, any> | undefined;
|
|
151
152
|
startedAt?: Date | undefined;
|
|
152
153
|
idempotencyKey?: string | undefined;
|
|
154
|
+
ttl?: string | undefined;
|
|
153
155
|
batchId?: string | undefined;
|
|
154
156
|
finishedAt?: Date | undefined;
|
|
155
157
|
delayedUntil?: Date | undefined;
|
|
156
|
-
ttl?: string | undefined;
|
|
157
158
|
expiredAt?: Date | undefined;
|
|
158
159
|
}[] | undefined;
|
|
159
160
|
};
|
|
160
161
|
depth: number;
|
|
161
|
-
triggerFunction: "trigger" | "
|
|
162
|
+
triggerFunction: "trigger" | "batchTrigger" | "triggerAndWait" | "batchTriggerAndWait";
|
|
162
163
|
isQueued: boolean;
|
|
163
164
|
isExecuting: boolean;
|
|
164
165
|
isCompleted: boolean;
|
|
@@ -166,15 +167,104 @@ declare function poll<TRunId extends AnyRunHandle | AnyTask | string>(runId: Run
|
|
|
166
167
|
isFailed: boolean;
|
|
167
168
|
isCancelled: boolean;
|
|
168
169
|
attemptCount: number;
|
|
170
|
+
ttl?: string | undefined;
|
|
169
171
|
payloadPresignedUrl?: string | undefined;
|
|
170
172
|
outputPresignedUrl?: string | undefined;
|
|
171
173
|
batchId?: string | undefined;
|
|
172
174
|
finishedAt?: Date | undefined;
|
|
173
175
|
delayedUntil?: Date | undefined;
|
|
174
|
-
ttl?: string | undefined;
|
|
175
176
|
expiredAt?: Date | undefined;
|
|
176
177
|
output?: InferRunTypes<TRunId>["output"] | undefined;
|
|
177
178
|
payload?: InferRunTypes<TRunId>["payload"] | undefined;
|
|
178
179
|
}>;
|
|
180
|
+
/**
|
|
181
|
+
* Subscribes to real-time updates for a specific run.
|
|
182
|
+
*
|
|
183
|
+
* This function allows you to receive real-time updates whenever a run changes, including:
|
|
184
|
+
* - Status changes in the run lifecycle
|
|
185
|
+
* - Tag additions or removals
|
|
186
|
+
* - Metadata updates
|
|
187
|
+
*
|
|
188
|
+
* @template TRunId - The type parameter extending AnyRunHandle, AnyTask, or string
|
|
189
|
+
* @param {RunId<TRunId>} runId - The ID of the run to subscribe to. Can be a string ID, RunHandle, or Task
|
|
190
|
+
* @returns {RunSubscription<InferRunTypes<TRunId>>} An async iterator that yields updated run objects
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```ts
|
|
194
|
+
* // Subscribe using a run handle
|
|
195
|
+
* const handle = await tasks.trigger("my-task", { some: "data" });
|
|
196
|
+
* for await (const run of runs.subscribeToRun(handle.id)) {
|
|
197
|
+
* console.log("Run updated:", run);
|
|
198
|
+
* }
|
|
199
|
+
*
|
|
200
|
+
* // Subscribe with type safety
|
|
201
|
+
* for await (const run of runs.subscribeToRun<typeof myTask>(runId)) {
|
|
202
|
+
* console.log("Payload:", run.payload.some);
|
|
203
|
+
* if (run.output) {
|
|
204
|
+
* console.log("Output:", run.output);
|
|
205
|
+
* }
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
179
209
|
declare function subscribeToRun<TRunId extends AnyRunHandle | AnyTask | string>(runId: RunId<TRunId>): RunSubscription<InferRunTypes<TRunId>>;
|
|
210
|
+
/**
|
|
211
|
+
* Subscribes to real-time updates for all runs that have specific tags.
|
|
212
|
+
*
|
|
213
|
+
* This function allows you to monitor multiple runs simultaneously by filtering on tags.
|
|
214
|
+
* You'll receive updates whenever any run with the specified tag(s) changes.
|
|
215
|
+
*
|
|
216
|
+
* @template TTasks - The type parameter extending AnyTask for type-safe payload and output
|
|
217
|
+
* @param {string | string[]} tag - A single tag or array of tags to filter runs
|
|
218
|
+
* @returns {RunSubscription<InferRunTypes<TTasks>>} An async iterator that yields updated run objects
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```ts
|
|
222
|
+
* // Subscribe to runs with a single tag
|
|
223
|
+
* for await (const run of runs.subscribeToRunsWithTag("user:1234")) {
|
|
224
|
+
* console.log("Run updated:", run);
|
|
225
|
+
* }
|
|
226
|
+
*
|
|
227
|
+
* // Subscribe with multiple tags and type safety
|
|
228
|
+
* for await (const run of runs.subscribeToRunsWithTag<typeof myTask | typeof otherTask>(["tag1", "tag2"])) {
|
|
229
|
+
* switch (run.taskIdentifier) {
|
|
230
|
+
* case "my-task":
|
|
231
|
+
* console.log("MyTask output:", run.output.foo);
|
|
232
|
+
* break;
|
|
233
|
+
* case "other-task":
|
|
234
|
+
* console.log("OtherTask output:", run.output.bar);
|
|
235
|
+
* break;
|
|
236
|
+
* }
|
|
237
|
+
* }
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
180
240
|
declare function subscribeToRunsWithTag<TTasks extends AnyTask>(tag: string | string[]): RunSubscription<InferRunTypes<TTasks>>;
|
|
241
|
+
/**
|
|
242
|
+
* Subscribes to real-time updates for all runs within a specific batch.
|
|
243
|
+
*
|
|
244
|
+
* Use this function when you've triggered multiple runs using `batchTrigger` and want
|
|
245
|
+
* to monitor all runs in that batch. You'll receive updates whenever any run in the batch changes.
|
|
246
|
+
*
|
|
247
|
+
* @template TTasks - The type parameter extending AnyTask for type-safe payload and output
|
|
248
|
+
* @param {string} batchId - The ID of the batch to subscribe to
|
|
249
|
+
* @returns {RunSubscription<InferRunTypes<TTasks>>} An async iterator that yields updated run objects
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* // Subscribe to all runs in a batch
|
|
254
|
+
* for await (const run of runs.subscribeToRunsInBatch("batch-123")) {
|
|
255
|
+
* console.log("Batch run updated:", run);
|
|
256
|
+
* }
|
|
257
|
+
*
|
|
258
|
+
* // Subscribe with type safety
|
|
259
|
+
* for await (const run of runs.subscribeToRunsInBatch<typeof myTask>("batch-123")) {
|
|
260
|
+
* console.log("Run payload:", run.payload);
|
|
261
|
+
* if (run.output) {
|
|
262
|
+
* console.log("Run output:", run.output);
|
|
263
|
+
* }
|
|
264
|
+
* }
|
|
265
|
+
* ```
|
|
266
|
+
*
|
|
267
|
+
* @note The run objects received will include standard fields like id, status, payload, output,
|
|
268
|
+
* createdAt, updatedAt, tags, and more. See the Run object documentation for full details.
|
|
269
|
+
*/
|
|
270
|
+
declare function subscribeToRunsInBatch<TTasks extends AnyTask>(batchId: string): RunSubscription<InferRunTypes<TTasks>>;
|
package/dist/commonjs/v3/runs.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.runs = {
|
|
|
13
13
|
poll,
|
|
14
14
|
subscribeToRun,
|
|
15
15
|
subscribeToRunsWithTag,
|
|
16
|
+
subscribeToBatch: subscribeToRunsInBatch,
|
|
16
17
|
};
|
|
17
18
|
function listRuns(paramsOrProjectRef, paramsOrOptions, requestOptions) {
|
|
18
19
|
const apiClient = v3_1.apiClientManager.clientOrThrow();
|
|
@@ -195,13 +196,105 @@ async function poll(runId, options, requestOptions) {
|
|
|
195
196
|
}
|
|
196
197
|
throw new Error(`Run ${typeof runId === "string" ? runId : runId.id} did not complete after ${MAX_POLL_ATTEMPTS} attempts`);
|
|
197
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Subscribes to real-time updates for a specific run.
|
|
201
|
+
*
|
|
202
|
+
* This function allows you to receive real-time updates whenever a run changes, including:
|
|
203
|
+
* - Status changes in the run lifecycle
|
|
204
|
+
* - Tag additions or removals
|
|
205
|
+
* - Metadata updates
|
|
206
|
+
*
|
|
207
|
+
* @template TRunId - The type parameter extending AnyRunHandle, AnyTask, or string
|
|
208
|
+
* @param {RunId<TRunId>} runId - The ID of the run to subscribe to. Can be a string ID, RunHandle, or Task
|
|
209
|
+
* @returns {RunSubscription<InferRunTypes<TRunId>>} An async iterator that yields updated run objects
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```ts
|
|
213
|
+
* // Subscribe using a run handle
|
|
214
|
+
* const handle = await tasks.trigger("my-task", { some: "data" });
|
|
215
|
+
* for await (const run of runs.subscribeToRun(handle.id)) {
|
|
216
|
+
* console.log("Run updated:", run);
|
|
217
|
+
* }
|
|
218
|
+
*
|
|
219
|
+
* // Subscribe with type safety
|
|
220
|
+
* for await (const run of runs.subscribeToRun<typeof myTask>(runId)) {
|
|
221
|
+
* console.log("Payload:", run.payload.some);
|
|
222
|
+
* if (run.output) {
|
|
223
|
+
* console.log("Output:", run.output);
|
|
224
|
+
* }
|
|
225
|
+
* }
|
|
226
|
+
* ```
|
|
227
|
+
*/
|
|
198
228
|
function subscribeToRun(runId) {
|
|
199
229
|
const $runId = typeof runId === "string" ? runId : runId.id;
|
|
200
230
|
const apiClient = v3_1.apiClientManager.clientOrThrow();
|
|
201
231
|
return apiClient.subscribeToRun($runId);
|
|
202
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Subscribes to real-time updates for all runs that have specific tags.
|
|
235
|
+
*
|
|
236
|
+
* This function allows you to monitor multiple runs simultaneously by filtering on tags.
|
|
237
|
+
* You'll receive updates whenever any run with the specified tag(s) changes.
|
|
238
|
+
*
|
|
239
|
+
* @template TTasks - The type parameter extending AnyTask for type-safe payload and output
|
|
240
|
+
* @param {string | string[]} tag - A single tag or array of tags to filter runs
|
|
241
|
+
* @returns {RunSubscription<InferRunTypes<TTasks>>} An async iterator that yields updated run objects
|
|
242
|
+
*
|
|
243
|
+
* @example
|
|
244
|
+
* ```ts
|
|
245
|
+
* // Subscribe to runs with a single tag
|
|
246
|
+
* for await (const run of runs.subscribeToRunsWithTag("user:1234")) {
|
|
247
|
+
* console.log("Run updated:", run);
|
|
248
|
+
* }
|
|
249
|
+
*
|
|
250
|
+
* // Subscribe with multiple tags and type safety
|
|
251
|
+
* for await (const run of runs.subscribeToRunsWithTag<typeof myTask | typeof otherTask>(["tag1", "tag2"])) {
|
|
252
|
+
* switch (run.taskIdentifier) {
|
|
253
|
+
* case "my-task":
|
|
254
|
+
* console.log("MyTask output:", run.output.foo);
|
|
255
|
+
* break;
|
|
256
|
+
* case "other-task":
|
|
257
|
+
* console.log("OtherTask output:", run.output.bar);
|
|
258
|
+
* break;
|
|
259
|
+
* }
|
|
260
|
+
* }
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
203
263
|
function subscribeToRunsWithTag(tag) {
|
|
204
264
|
const apiClient = v3_1.apiClientManager.clientOrThrow();
|
|
205
265
|
return apiClient.subscribeToRunsWithTag(tag);
|
|
206
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Subscribes to real-time updates for all runs within a specific batch.
|
|
269
|
+
*
|
|
270
|
+
* Use this function when you've triggered multiple runs using `batchTrigger` and want
|
|
271
|
+
* to monitor all runs in that batch. You'll receive updates whenever any run in the batch changes.
|
|
272
|
+
*
|
|
273
|
+
* @template TTasks - The type parameter extending AnyTask for type-safe payload and output
|
|
274
|
+
* @param {string} batchId - The ID of the batch to subscribe to
|
|
275
|
+
* @returns {RunSubscription<InferRunTypes<TTasks>>} An async iterator that yields updated run objects
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```ts
|
|
279
|
+
* // Subscribe to all runs in a batch
|
|
280
|
+
* for await (const run of runs.subscribeToRunsInBatch("batch-123")) {
|
|
281
|
+
* console.log("Batch run updated:", run);
|
|
282
|
+
* }
|
|
283
|
+
*
|
|
284
|
+
* // Subscribe with type safety
|
|
285
|
+
* for await (const run of runs.subscribeToRunsInBatch<typeof myTask>("batch-123")) {
|
|
286
|
+
* console.log("Run payload:", run.payload);
|
|
287
|
+
* if (run.output) {
|
|
288
|
+
* console.log("Run output:", run.output);
|
|
289
|
+
* }
|
|
290
|
+
* }
|
|
291
|
+
* ```
|
|
292
|
+
*
|
|
293
|
+
* @note The run objects received will include standard fields like id, status, payload, output,
|
|
294
|
+
* createdAt, updatedAt, tags, and more. See the Run object documentation for full details.
|
|
295
|
+
*/
|
|
296
|
+
function subscribeToRunsInBatch(batchId) {
|
|
297
|
+
const apiClient = v3_1.apiClientManager.clientOrThrow();
|
|
298
|
+
return apiClient.subscribeToBatch(batchId);
|
|
299
|
+
}
|
|
207
300
|
//# sourceMappingURL=runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/v3/runs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/v3/runs.ts"],"names":[],"mappings":"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"}
|