@trigger.dev/react-hooks 3.1.2 → 3.2.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/contexts.d.ts +2 -2
- package/dist/commonjs/contexts.js +3 -2
- package/dist/commonjs/contexts.js.map +1 -1
- package/dist/commonjs/hooks/useApiClient.d.ts +33 -2
- package/dist/commonjs/hooks/useApiClient.js +31 -6
- package/dist/commonjs/hooks/useApiClient.js.map +1 -1
- package/dist/commonjs/hooks/useRealtime.d.ts +100 -0
- package/dist/commonjs/hooks/useRealtime.js +387 -0
- package/dist/commonjs/hooks/useRealtime.js.map +1 -0
- package/dist/commonjs/hooks/useRun.js +1 -1
- package/dist/commonjs/hooks/useRun.js.map +1 -1
- package/dist/commonjs/hooks/useTaskTrigger.d.ts +101 -0
- package/dist/commonjs/hooks/useTaskTrigger.js +134 -0
- package/dist/commonjs/hooks/useTaskTrigger.js.map +1 -0
- package/dist/commonjs/index.d.ts +2 -3
- package/dist/commonjs/index.js +2 -3
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/utils/throttle.d.ts +6 -0
- package/dist/commonjs/utils/throttle.js +50 -0
- package/dist/commonjs/utils/throttle.js.map +1 -0
- package/dist/commonjs/utils/trigger-swr.d.ts +12 -0
- package/dist/commonjs/utils/trigger-swr.js.map +1 -1
- package/dist/esm/contexts.d.ts +2 -2
- package/dist/esm/contexts.js +2 -2
- package/dist/esm/contexts.js.map +1 -1
- package/dist/esm/hooks/useApiClient.d.ts +33 -2
- package/dist/esm/hooks/useApiClient.js +32 -7
- package/dist/esm/hooks/useApiClient.js.map +1 -1
- package/dist/esm/hooks/useRealtime.d.ts +100 -0
- package/dist/esm/hooks/useRealtime.js +381 -0
- package/dist/esm/hooks/useRealtime.js.map +1 -0
- package/dist/esm/hooks/useRun.js +1 -1
- package/dist/esm/hooks/useRun.js.map +1 -1
- package/dist/esm/hooks/useTaskTrigger.d.ts +101 -0
- package/dist/esm/hooks/useTaskTrigger.js +126 -0
- package/dist/esm/hooks/useTaskTrigger.js.map +1 -0
- package/dist/esm/index.d.ts +2 -3
- package/dist/esm/index.js +2 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/throttle.d.ts +6 -0
- package/dist/esm/utils/throttle.js +47 -0
- package/dist/esm/utils/throttle.js.map +1 -0
- package/dist/esm/utils/trigger-swr.d.ts +12 -0
- package/dist/esm/utils/trigger-swr.js.map +1 -1
- package/package.json +2 -2
- package/dist/commonjs/hooks/useRealtimeBatch.d.ts +0 -19
- package/dist/commonjs/hooks/useRealtimeBatch.js +0 -56
- package/dist/commonjs/hooks/useRealtimeBatch.js.map +0 -1
- package/dist/commonjs/hooks/useRealtimeRun.d.ts +0 -18
- package/dist/commonjs/hooks/useRealtimeRun.js +0 -40
- package/dist/commonjs/hooks/useRealtimeRun.js.map +0 -1
- package/dist/commonjs/hooks/useRealtimeRunsWithTag.d.ts +0 -5
- package/dist/commonjs/hooks/useRealtimeRunsWithTag.js +0 -45
- package/dist/commonjs/hooks/useRealtimeRunsWithTag.js.map +0 -1
- package/dist/esm/hooks/useRealtimeBatch.d.ts +0 -19
- package/dist/esm/hooks/useRealtimeBatch.js +0 -53
- package/dist/esm/hooks/useRealtimeBatch.js.map +0 -1
- package/dist/esm/hooks/useRealtimeRun.d.ts +0 -18
- package/dist/esm/hooks/useRealtimeRun.js +0 -37
- package/dist/esm/hooks/useRealtimeRun.js.map +0 -1
- package/dist/esm/hooks/useRealtimeRunsWithTag.d.ts +0 -5
- package/dist/esm/hooks/useRealtimeRunsWithTag.js +0 -42
- package/dist/esm/hooks/useRealtimeRunsWithTag.js.map +0 -1
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useId, useRef, useState } from "react";
|
|
3
|
+
import { useSWR } from "../utils/trigger-swr.js";
|
|
4
|
+
import { useApiClient } from "./useApiClient.js";
|
|
5
|
+
import { createThrottledQueue } from "../utils/throttle.js";
|
|
6
|
+
/**
|
|
7
|
+
* Hook to subscribe to realtime updates of a task run.
|
|
8
|
+
*
|
|
9
|
+
* @template TTask - The type of the task
|
|
10
|
+
* @param {string} [runId] - The unique identifier of the run to subscribe to
|
|
11
|
+
* @param {UseRealtimeRunOptions} [options] - Configuration options for the subscription
|
|
12
|
+
* @returns {UseRealtimeRunInstance<TTask>} An object containing the current state of the run, error handling, and control methods
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import type { myTask } from './path/to/task';
|
|
17
|
+
* const { run, error } = useRealtimeRun<typeof myTask>('run-id-123');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function useRealtimeRun(runId, options) {
|
|
21
|
+
const hookId = useId();
|
|
22
|
+
const idKey = options?.id ?? hookId;
|
|
23
|
+
// Store the streams state in SWR, using the idKey as the key to share states.
|
|
24
|
+
const { data: run, mutate: mutateRun } = useSWR([idKey, "run"], null);
|
|
25
|
+
// Keep the latest streams in a ref.
|
|
26
|
+
const runRef = useRef();
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
runRef.current = run;
|
|
29
|
+
}, [run]);
|
|
30
|
+
const { data: error = undefined, mutate: setError } = useSWR([idKey, "error"], null);
|
|
31
|
+
// Abort controller to cancel the current API call.
|
|
32
|
+
const abortControllerRef = useRef(null);
|
|
33
|
+
const stop = useCallback(() => {
|
|
34
|
+
if (abortControllerRef.current) {
|
|
35
|
+
abortControllerRef.current.abort();
|
|
36
|
+
abortControllerRef.current = null;
|
|
37
|
+
}
|
|
38
|
+
}, []);
|
|
39
|
+
const apiClient = useApiClient(options);
|
|
40
|
+
const triggerRequest = useCallback(async () => {
|
|
41
|
+
try {
|
|
42
|
+
if (!runId) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const abortController = new AbortController();
|
|
46
|
+
abortControllerRef.current = abortController;
|
|
47
|
+
await processRealtimeRun(runId, apiClient, mutateRun, abortControllerRef);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
// Ignore abort errors as they are expected.
|
|
51
|
+
if (err.name === "AbortError") {
|
|
52
|
+
abortControllerRef.current = null;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
setError(err);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
if (abortControllerRef.current) {
|
|
59
|
+
abortControllerRef.current = null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, [runId, mutateRun, abortControllerRef, apiClient, setError]);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (typeof options?.enabled === "boolean" && !options.enabled) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (!runId) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
triggerRequest().finally(() => { });
|
|
71
|
+
return () => {
|
|
72
|
+
stop();
|
|
73
|
+
};
|
|
74
|
+
}, [runId, stop, options?.enabled]);
|
|
75
|
+
return { run, error, stop };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Hook to subscribe to realtime updates of a task run with associated data streams.
|
|
79
|
+
*
|
|
80
|
+
* @template TTask - The type of the task
|
|
81
|
+
* @template TStreams - The type of the streams data
|
|
82
|
+
* @param {string} [runId] - The unique identifier of the run to subscribe to
|
|
83
|
+
* @param {UseRealtimeRunOptions} [options] - Configuration options for the subscription
|
|
84
|
+
* @returns {UseRealtimeRunWithStreamsInstance<TTask, TStreams>} An object containing the current state of the run, streams data, and error handling
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* import type { myTask } from './path/to/task';
|
|
89
|
+
* const { run, streams, error } = useRealtimeRunWithStreams<typeof myTask, {
|
|
90
|
+
* output: string;
|
|
91
|
+
* }>('run-id-123');
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export function useRealtimeRunWithStreams(runId, options) {
|
|
95
|
+
const hookId = useId();
|
|
96
|
+
const idKey = options?.id ?? hookId;
|
|
97
|
+
const [initialStreamsFallback] = useState({});
|
|
98
|
+
// Store the streams state in SWR, using the idKey as the key to share states.
|
|
99
|
+
const { data: streams, mutate: mutateStreams } = useSWR([idKey, "streams"], null, {
|
|
100
|
+
fallbackData: initialStreamsFallback,
|
|
101
|
+
});
|
|
102
|
+
// Keep the latest streams in a ref.
|
|
103
|
+
const streamsRef = useRef(streams ?? {});
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
streamsRef.current = streams || {};
|
|
106
|
+
}, [streams]);
|
|
107
|
+
// Store the streams state in SWR, using the idKey as the key to share states.
|
|
108
|
+
const { data: run, mutate: mutateRun } = useSWR([idKey, "run"], null);
|
|
109
|
+
// Keep the latest streams in a ref.
|
|
110
|
+
const runRef = useRef();
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
runRef.current = run;
|
|
113
|
+
}, [run]);
|
|
114
|
+
const { data: error = undefined, mutate: setError } = useSWR([idKey, "error"], null);
|
|
115
|
+
// Abort controller to cancel the current API call.
|
|
116
|
+
const abortControllerRef = useRef(null);
|
|
117
|
+
const stop = useCallback(() => {
|
|
118
|
+
if (abortControllerRef.current) {
|
|
119
|
+
abortControllerRef.current.abort();
|
|
120
|
+
abortControllerRef.current = null;
|
|
121
|
+
}
|
|
122
|
+
}, []);
|
|
123
|
+
const apiClient = useApiClient(options);
|
|
124
|
+
const triggerRequest = useCallback(async () => {
|
|
125
|
+
try {
|
|
126
|
+
if (!runId) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const abortController = new AbortController();
|
|
130
|
+
abortControllerRef.current = abortController;
|
|
131
|
+
await processRealtimeRunWithStreams(runId, apiClient, mutateRun, mutateStreams, streamsRef, abortControllerRef, options?.experimental_throttleInMs);
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
// Ignore abort errors as they are expected.
|
|
135
|
+
if (err.name === "AbortError") {
|
|
136
|
+
abortControllerRef.current = null;
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
setError(err);
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
if (abortControllerRef.current) {
|
|
143
|
+
abortControllerRef.current = null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}, [runId, mutateRun, mutateStreams, streamsRef, abortControllerRef, apiClient, setError]);
|
|
147
|
+
useEffect(() => {
|
|
148
|
+
if (typeof options?.enabled === "boolean" && !options.enabled) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (!runId) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
triggerRequest().finally(() => { });
|
|
155
|
+
return () => {
|
|
156
|
+
stop();
|
|
157
|
+
};
|
|
158
|
+
}, [runId, stop, options?.enabled]);
|
|
159
|
+
return { run, streams: streams ?? initialStreamsFallback, error, stop };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Hook to subscribe to realtime updates of task runs filtered by tag(s).
|
|
163
|
+
*
|
|
164
|
+
* @template TTask - The type of the task
|
|
165
|
+
* @param {string | string[]} tag - The tag or array of tags to filter runs by
|
|
166
|
+
* @param {UseRealtimeRunOptions} [options] - Configuration options for the subscription
|
|
167
|
+
* @returns {UseRealtimeRunsInstance<TTask>} An object containing the current state of the runs and any error encountered
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* import type { myTask } from './path/to/task';
|
|
172
|
+
* const { runs, error } = useRealtimeRunsWithTag<typeof myTask>('my-tag');
|
|
173
|
+
* // Or with multiple tags
|
|
174
|
+
* const { runs, error } = useRealtimeRunsWithTag<typeof myTask>(['tag1', 'tag2']);
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export function useRealtimeRunsWithTag(tag, options) {
|
|
178
|
+
const hookId = useId();
|
|
179
|
+
const idKey = options?.id ?? hookId;
|
|
180
|
+
// Store the streams state in SWR, using the idKey as the key to share states.
|
|
181
|
+
const { data: runs, mutate: mutateRuns } = useSWR([idKey, "run"], null, {
|
|
182
|
+
fallbackData: [],
|
|
183
|
+
});
|
|
184
|
+
// Keep the latest streams in a ref.
|
|
185
|
+
const runsRef = useRef([]);
|
|
186
|
+
useEffect(() => {
|
|
187
|
+
runsRef.current = runs ?? [];
|
|
188
|
+
}, [runs]);
|
|
189
|
+
const { data: error = undefined, mutate: setError } = useSWR([idKey, "error"], null);
|
|
190
|
+
// Abort controller to cancel the current API call.
|
|
191
|
+
const abortControllerRef = useRef(null);
|
|
192
|
+
const stop = useCallback(() => {
|
|
193
|
+
if (abortControllerRef.current) {
|
|
194
|
+
abortControllerRef.current.abort();
|
|
195
|
+
abortControllerRef.current = null;
|
|
196
|
+
}
|
|
197
|
+
}, []);
|
|
198
|
+
const apiClient = useApiClient(options);
|
|
199
|
+
const triggerRequest = useCallback(async () => {
|
|
200
|
+
try {
|
|
201
|
+
const abortController = new AbortController();
|
|
202
|
+
abortControllerRef.current = abortController;
|
|
203
|
+
await processRealtimeRunsWithTag(tag, apiClient, mutateRuns, runsRef, abortControllerRef);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
// Ignore abort errors as they are expected.
|
|
207
|
+
if (err.name === "AbortError") {
|
|
208
|
+
abortControllerRef.current = null;
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
setError(err);
|
|
212
|
+
}
|
|
213
|
+
finally {
|
|
214
|
+
if (abortControllerRef.current) {
|
|
215
|
+
abortControllerRef.current = null;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}, [tag, mutateRuns, runsRef, abortControllerRef, apiClient, setError]);
|
|
219
|
+
useEffect(() => {
|
|
220
|
+
if (typeof options?.enabled === "boolean" && !options.enabled) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
triggerRequest().finally(() => { });
|
|
224
|
+
return () => {
|
|
225
|
+
stop();
|
|
226
|
+
};
|
|
227
|
+
}, [tag, stop, options?.enabled]);
|
|
228
|
+
return { runs: runs ?? [], error, stop };
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Hook to subscribe to realtime updates of a batch of task runs.
|
|
232
|
+
*
|
|
233
|
+
* @template TTask - The type of the task
|
|
234
|
+
* @param {string} batchId - The unique identifier of the batch to subscribe to
|
|
235
|
+
* @param {UseRealtimeRunOptions} [options] - Configuration options for the subscription
|
|
236
|
+
* @returns {UseRealtimeRunsInstance<TTask>} An object containing the current state of the runs, error handling, and control methods
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* import type { myTask } from './path/to/task';
|
|
241
|
+
* const { runs, error } = useRealtimeBatch<typeof myTask>('batch-id-123');
|
|
242
|
+
* ```
|
|
243
|
+
*/
|
|
244
|
+
export function useRealtimeBatch(batchId, options) {
|
|
245
|
+
const hookId = useId();
|
|
246
|
+
const idKey = options?.id ?? hookId;
|
|
247
|
+
// Store the streams state in SWR, using the idKey as the key to share states.
|
|
248
|
+
const { data: runs, mutate: mutateRuns } = useSWR([idKey, "run"], null, {
|
|
249
|
+
fallbackData: [],
|
|
250
|
+
});
|
|
251
|
+
// Keep the latest streams in a ref.
|
|
252
|
+
const runsRef = useRef([]);
|
|
253
|
+
useEffect(() => {
|
|
254
|
+
runsRef.current = runs ?? [];
|
|
255
|
+
}, [runs]);
|
|
256
|
+
const { data: error = undefined, mutate: setError } = useSWR([idKey, "error"], null);
|
|
257
|
+
// Abort controller to cancel the current API call.
|
|
258
|
+
const abortControllerRef = useRef(null);
|
|
259
|
+
const stop = useCallback(() => {
|
|
260
|
+
if (abortControllerRef.current) {
|
|
261
|
+
abortControllerRef.current.abort();
|
|
262
|
+
abortControllerRef.current = null;
|
|
263
|
+
}
|
|
264
|
+
}, []);
|
|
265
|
+
const apiClient = useApiClient(options);
|
|
266
|
+
const triggerRequest = useCallback(async () => {
|
|
267
|
+
try {
|
|
268
|
+
const abortController = new AbortController();
|
|
269
|
+
abortControllerRef.current = abortController;
|
|
270
|
+
await processRealtimeBatch(batchId, apiClient, mutateRuns, runsRef, abortControllerRef);
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
// Ignore abort errors as they are expected.
|
|
274
|
+
if (err.name === "AbortError") {
|
|
275
|
+
abortControllerRef.current = null;
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
setError(err);
|
|
279
|
+
}
|
|
280
|
+
finally {
|
|
281
|
+
if (abortControllerRef.current) {
|
|
282
|
+
abortControllerRef.current = null;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}, [batchId, mutateRuns, runsRef, abortControllerRef, apiClient, setError]);
|
|
286
|
+
useEffect(() => {
|
|
287
|
+
if (typeof options?.enabled === "boolean" && !options.enabled) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
triggerRequest().finally(() => { });
|
|
291
|
+
return () => {
|
|
292
|
+
stop();
|
|
293
|
+
};
|
|
294
|
+
}, [batchId, stop, options?.enabled]);
|
|
295
|
+
return { runs: runs ?? [], error, stop };
|
|
296
|
+
}
|
|
297
|
+
async function processRealtimeBatch(batchId, apiClient, mutateRunsData, existingRunsRef, abortControllerRef) {
|
|
298
|
+
const subscription = apiClient.subscribeToBatch(batchId, {
|
|
299
|
+
signal: abortControllerRef.current?.signal,
|
|
300
|
+
});
|
|
301
|
+
for await (const part of subscription) {
|
|
302
|
+
mutateRunsData(insertRunShapeInOrder(existingRunsRef.current, part));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
// Inserts and then orders by the run number, and ensures that the run is not duplicated
|
|
306
|
+
function insertRunShapeInOrder(previousRuns, run) {
|
|
307
|
+
const existingRun = previousRuns.find((r) => r.id === run.id);
|
|
308
|
+
if (existingRun) {
|
|
309
|
+
return previousRuns.map((r) => (r.id === run.id ? run : r));
|
|
310
|
+
}
|
|
311
|
+
const runNumber = run.number;
|
|
312
|
+
const index = previousRuns.findIndex((r) => r.number > runNumber);
|
|
313
|
+
if (index === -1) {
|
|
314
|
+
return [...previousRuns, run];
|
|
315
|
+
}
|
|
316
|
+
return [...previousRuns.slice(0, index), run, ...previousRuns.slice(index)];
|
|
317
|
+
}
|
|
318
|
+
async function processRealtimeRunsWithTag(tag, apiClient, mutateRunsData, existingRunsRef, abortControllerRef) {
|
|
319
|
+
const subscription = apiClient.subscribeToRunsWithTag(tag, {
|
|
320
|
+
signal: abortControllerRef.current?.signal,
|
|
321
|
+
});
|
|
322
|
+
for await (const part of subscription) {
|
|
323
|
+
mutateRunsData(insertRunShape(existingRunsRef.current, part));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Replaces or inserts a run shape, ordered by the createdAt timestamp
|
|
327
|
+
function insertRunShape(previousRuns, run) {
|
|
328
|
+
const existingRun = previousRuns.find((r) => r.id === run.id);
|
|
329
|
+
if (existingRun) {
|
|
330
|
+
return previousRuns.map((r) => (r.id === run.id ? run : r));
|
|
331
|
+
}
|
|
332
|
+
const createdAt = run.createdAt;
|
|
333
|
+
const index = previousRuns.findIndex((r) => r.createdAt > createdAt);
|
|
334
|
+
if (index === -1) {
|
|
335
|
+
return [...previousRuns, run];
|
|
336
|
+
}
|
|
337
|
+
return [...previousRuns.slice(0, index), run, ...previousRuns.slice(index)];
|
|
338
|
+
}
|
|
339
|
+
async function processRealtimeRunWithStreams(runId, apiClient, mutateRunData, mutateStreamData, existingDataRef, abortControllerRef, throttleInMs) {
|
|
340
|
+
const subscription = apiClient.subscribeToRun(runId, {
|
|
341
|
+
signal: abortControllerRef.current?.signal,
|
|
342
|
+
});
|
|
343
|
+
const streamQueue = createThrottledQueue(async (updates) => {
|
|
344
|
+
const nextStreamData = { ...existingDataRef.current };
|
|
345
|
+
// Group updates by type
|
|
346
|
+
const updatesByType = updates.reduce((acc, update) => {
|
|
347
|
+
if (!acc[update.type]) {
|
|
348
|
+
acc[update.type] = [];
|
|
349
|
+
}
|
|
350
|
+
acc[update.type].push(update.chunk);
|
|
351
|
+
return acc;
|
|
352
|
+
}, {});
|
|
353
|
+
// Apply all updates
|
|
354
|
+
for (const [type, chunks] of Object.entries(updatesByType)) {
|
|
355
|
+
// @ts-ignore
|
|
356
|
+
nextStreamData[type] = [...(existingDataRef.current[type] || []), ...chunks];
|
|
357
|
+
}
|
|
358
|
+
await mutateStreamData(nextStreamData);
|
|
359
|
+
}, throttleInMs);
|
|
360
|
+
for await (const part of subscription.withStreams()) {
|
|
361
|
+
if (part.type === "run") {
|
|
362
|
+
mutateRunData(part.run);
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
streamQueue.add({
|
|
366
|
+
type: part.type,
|
|
367
|
+
// @ts-ignore
|
|
368
|
+
chunk: part.chunk,
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
async function processRealtimeRun(runId, apiClient, mutateRunData, abortControllerRef) {
|
|
374
|
+
const subscription = apiClient.subscribeToRun(runId, {
|
|
375
|
+
signal: abortControllerRef.current?.signal,
|
|
376
|
+
});
|
|
377
|
+
for await (const part of subscription) {
|
|
378
|
+
mutateRunData(part);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=useRealtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRealtime.js","sourceRoot":"","sources":["../../../src/hooks/useRealtime.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/hooks/useRun.js
CHANGED
|
@@ -15,7 +15,7 @@ import { useApiClient } from "./useApiClient.js";
|
|
|
15
15
|
* @returns {boolean} isError - Indicates if an error occurred during the retrieval of the run data.
|
|
16
16
|
*/
|
|
17
17
|
export function useRun(runId, options) {
|
|
18
|
-
const apiClient = useApiClient();
|
|
18
|
+
const apiClient = useApiClient(options);
|
|
19
19
|
const { data: run, error, isLoading, isValidating, } = useSWR(runId, () => apiClient.retrieveRun(runId), {
|
|
20
20
|
revalidateOnReconnect: options?.revalidateOnReconnect,
|
|
21
21
|
refreshInterval: (run) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRun.js","sourceRoot":"","sources":["../../../src/hooks/useRun.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAA4B,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,OAAkC;IAQlC,MAAM,SAAS,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"useRun.js","sourceRoot":"","sources":["../../../src/hooks/useRun.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAA4B,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CACpB,KAAa,EACb,OAAkC;IAQlC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EACJ,IAAI,EAAE,GAAG,EACT,KAAK,EACL,SAAS,EACT,YAAY,GACb,GAAG,MAAM,CAA2B,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC9E,qBAAqB,EAAE,OAAO,EAAE,qBAAqB;QACrD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,CAAC,GAAG;gBAAE,OAAO,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC;YAE/C,IAAI,GAAG,CAAC,WAAW;gBAAE,OAAO,CAAC,CAAC;YAE9B,OAAO,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,iBAAiB,EAAE,OAAO,EAAE,iBAAiB;KAC9C,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type AnyTask, type TaskIdentifier, type TaskPayload, InferRunTypes, RunHandleFromTypes } from "@trigger.dev/core/v3";
|
|
2
|
+
import { UseApiClientOptions } from "./useApiClient.js";
|
|
3
|
+
import { UseRealtimeRunInstance, UseRealtimeRunWithStreamsInstance } from "./useRealtime.js";
|
|
4
|
+
/**
|
|
5
|
+
* Base interface for task trigger instances.
|
|
6
|
+
*
|
|
7
|
+
* @template TTask - The type of the task
|
|
8
|
+
*/
|
|
9
|
+
export interface TriggerInstance<TTask extends AnyTask> {
|
|
10
|
+
/** Function to submit the task with a payload */
|
|
11
|
+
submit: (payload: TaskPayload<TTask>) => void;
|
|
12
|
+
/** Whether the task is currently being submitted */
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
/** The handle returned after successful task submission */
|
|
15
|
+
handle?: RunHandleFromTypes<InferRunTypes<TTask>>;
|
|
16
|
+
/** Any error that occurred during submission */
|
|
17
|
+
error?: Error;
|
|
18
|
+
}
|
|
19
|
+
export type UseTaskTriggerOptions = UseApiClientOptions;
|
|
20
|
+
/**
|
|
21
|
+
* Hook to trigger a task and manage its initial execution state.
|
|
22
|
+
*
|
|
23
|
+
* @template TTask - The type of the task
|
|
24
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
25
|
+
* @param {UseTaskTriggerOptions} [options] - Configuration options for the task trigger
|
|
26
|
+
* @returns {TriggerInstance<TTask>} An object containing the submit function, loading state, handle, and any errors
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import type { myTask } from './path/to/task';
|
|
31
|
+
* const { submit, isLoading, handle, error } = useTaskTrigger<typeof myTask>('my-task-id');
|
|
32
|
+
*
|
|
33
|
+
* // Submit the task with payload
|
|
34
|
+
* submit({ foo: 'bar' });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function useTaskTrigger<TTask extends AnyTask>(id: TaskIdentifier<TTask>, options?: UseTaskTriggerOptions): TriggerInstance<TTask>;
|
|
38
|
+
/**
|
|
39
|
+
* Configuration options for task triggers with realtime updates.
|
|
40
|
+
*/
|
|
41
|
+
export type UseRealtimeTaskTriggerOptions = UseTaskTriggerOptions & {
|
|
42
|
+
/** Whether the realtime subscription is enabled */
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
/** Optional throttle time in milliseconds for stream updates */
|
|
45
|
+
experimental_throttleInMs?: number;
|
|
46
|
+
};
|
|
47
|
+
export type RealtimeTriggerInstanceWithStreams<TTask extends AnyTask, TStreams extends Record<string, any> = Record<string, any>> = UseRealtimeRunWithStreamsInstance<TTask, TStreams> & {
|
|
48
|
+
submit: (payload: TaskPayload<TTask>) => void;
|
|
49
|
+
isLoading: boolean;
|
|
50
|
+
handle?: RunHandleFromTypes<InferRunTypes<TTask>>;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Hook to trigger a task and subscribe to its realtime updates including stream data.
|
|
54
|
+
*
|
|
55
|
+
* @template TTask - The type of the task
|
|
56
|
+
* @template TStreams - The type of the streams data
|
|
57
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
58
|
+
* @param {UseRealtimeTaskTriggerOptions} [options] - Configuration options for the task trigger and realtime updates
|
|
59
|
+
* @returns {RealtimeTriggerInstanceWithStreams<TTask, TStreams>} An object containing the submit function, loading state,
|
|
60
|
+
* handle, run state, streams data, and error handling
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import type { myTask } from './path/to/task';
|
|
65
|
+
* const { submit, run, streams, error } = useRealtimeTaskTriggerWithStreams<
|
|
66
|
+
* typeof myTask,
|
|
67
|
+
* { output: string }
|
|
68
|
+
* >('my-task-id');
|
|
69
|
+
*
|
|
70
|
+
* // Submit and monitor the task with streams
|
|
71
|
+
* submit({ foo: 'bar' });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function useRealtimeTaskTriggerWithStreams<TTask extends AnyTask, TStreams extends Record<string, any> = Record<string, any>>(id: TaskIdentifier<TTask>, options?: UseRealtimeTaskTriggerOptions): RealtimeTriggerInstanceWithStreams<TTask, TStreams>;
|
|
75
|
+
export type RealtimeTriggerInstance<TTask extends AnyTask> = UseRealtimeRunInstance<TTask> & {
|
|
76
|
+
submit: (payload: TaskPayload<TTask>) => void;
|
|
77
|
+
isLoading: boolean;
|
|
78
|
+
handle?: RunHandleFromTypes<InferRunTypes<TTask>>;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Hook to trigger a task and subscribe to its realtime updates.
|
|
82
|
+
*
|
|
83
|
+
* @template TTask - The type of the task
|
|
84
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
85
|
+
* @param {UseRealtimeTaskTriggerOptions} [options] - Configuration options for the task trigger and realtime updates
|
|
86
|
+
* @returns {RealtimeTriggerInstance<TTask>} An object containing the submit function, loading state,
|
|
87
|
+
* handle, run state, and error handling
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import type { myTask } from './path/to/task';
|
|
92
|
+
* const { submit, run, error, stop } = useRealtimeTaskTrigger<typeof myTask>('my-task-id');
|
|
93
|
+
*
|
|
94
|
+
* // Submit and monitor the task
|
|
95
|
+
* submit({ foo: 'bar' });
|
|
96
|
+
*
|
|
97
|
+
* // Stop monitoring when needed
|
|
98
|
+
* stop();
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function useRealtimeTaskTrigger<TTask extends AnyTask>(id: TaskIdentifier<TTask>, options?: UseRealtimeTaskTriggerOptions): RealtimeTriggerInstance<TTask>;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { makeIdempotencyKey, stringifyIO, } from "@trigger.dev/core/v3";
|
|
3
|
+
import useSWRMutation from "swr/mutation";
|
|
4
|
+
import { useApiClient } from "./useApiClient.js";
|
|
5
|
+
import { useRealtimeRun, useRealtimeRunWithStreams, } from "./useRealtime.js";
|
|
6
|
+
/**
|
|
7
|
+
* Hook to trigger a task and manage its initial execution state.
|
|
8
|
+
*
|
|
9
|
+
* @template TTask - The type of the task
|
|
10
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
11
|
+
* @param {UseTaskTriggerOptions} [options] - Configuration options for the task trigger
|
|
12
|
+
* @returns {TriggerInstance<TTask>} An object containing the submit function, loading state, handle, and any errors
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import type { myTask } from './path/to/task';
|
|
17
|
+
* const { submit, isLoading, handle, error } = useTaskTrigger<typeof myTask>('my-task-id');
|
|
18
|
+
*
|
|
19
|
+
* // Submit the task with payload
|
|
20
|
+
* submit({ foo: 'bar' });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function useTaskTrigger(id, options) {
|
|
24
|
+
const apiClient = useApiClient(options);
|
|
25
|
+
async function triggerTask(id, { arg: { payload, options }, }) {
|
|
26
|
+
const payloadPacket = await stringifyIO(payload);
|
|
27
|
+
const handle = await apiClient.triggerTask(id, {
|
|
28
|
+
payload: payloadPacket.data,
|
|
29
|
+
options: {
|
|
30
|
+
queue: options?.queue,
|
|
31
|
+
concurrencyKey: options?.concurrencyKey,
|
|
32
|
+
payloadType: payloadPacket.dataType,
|
|
33
|
+
idempotencyKey: await makeIdempotencyKey(options?.idempotencyKey),
|
|
34
|
+
delay: options?.delay,
|
|
35
|
+
ttl: options?.ttl,
|
|
36
|
+
tags: options?.tags,
|
|
37
|
+
maxAttempts: options?.maxAttempts,
|
|
38
|
+
metadata: options?.metadata,
|
|
39
|
+
maxDuration: options?.maxDuration,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
return { ...handle, taskIdentifier: id };
|
|
43
|
+
}
|
|
44
|
+
const mutation = useSWRMutation(id, triggerTask);
|
|
45
|
+
return {
|
|
46
|
+
submit: (payload) => {
|
|
47
|
+
// trigger the task with the given payload
|
|
48
|
+
mutation.trigger({ payload });
|
|
49
|
+
},
|
|
50
|
+
isLoading: mutation.isMutating,
|
|
51
|
+
handle: mutation.data,
|
|
52
|
+
error: mutation.error,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Hook to trigger a task and subscribe to its realtime updates including stream data.
|
|
57
|
+
*
|
|
58
|
+
* @template TTask - The type of the task
|
|
59
|
+
* @template TStreams - The type of the streams data
|
|
60
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
61
|
+
* @param {UseRealtimeTaskTriggerOptions} [options] - Configuration options for the task trigger and realtime updates
|
|
62
|
+
* @returns {RealtimeTriggerInstanceWithStreams<TTask, TStreams>} An object containing the submit function, loading state,
|
|
63
|
+
* handle, run state, streams data, and error handling
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* import type { myTask } from './path/to/task';
|
|
68
|
+
* const { submit, run, streams, error } = useRealtimeTaskTriggerWithStreams<
|
|
69
|
+
* typeof myTask,
|
|
70
|
+
* { output: string }
|
|
71
|
+
* >('my-task-id');
|
|
72
|
+
*
|
|
73
|
+
* // Submit and monitor the task with streams
|
|
74
|
+
* submit({ foo: 'bar' });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function useRealtimeTaskTriggerWithStreams(id, options) {
|
|
78
|
+
const triggerInstance = useTaskTrigger(id, options);
|
|
79
|
+
const realtimeInstance = useRealtimeRunWithStreams(triggerInstance.handle?.id, {
|
|
80
|
+
...options,
|
|
81
|
+
id: triggerInstance.handle?.id,
|
|
82
|
+
accessToken: triggerInstance.handle?.publicAccessToken ?? options?.accessToken,
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
...realtimeInstance,
|
|
86
|
+
...triggerInstance,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Hook to trigger a task and subscribe to its realtime updates.
|
|
91
|
+
*
|
|
92
|
+
* @template TTask - The type of the task
|
|
93
|
+
* @param {TaskIdentifier<TTask>} id - The identifier of the task to trigger
|
|
94
|
+
* @param {UseRealtimeTaskTriggerOptions} [options] - Configuration options for the task trigger and realtime updates
|
|
95
|
+
* @returns {RealtimeTriggerInstance<TTask>} An object containing the submit function, loading state,
|
|
96
|
+
* handle, run state, and error handling
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```ts
|
|
100
|
+
* import type { myTask } from './path/to/task';
|
|
101
|
+
* const { submit, run, error, stop } = useRealtimeTaskTrigger<typeof myTask>('my-task-id');
|
|
102
|
+
*
|
|
103
|
+
* // Submit and monitor the task
|
|
104
|
+
* submit({ foo: 'bar' });
|
|
105
|
+
*
|
|
106
|
+
* // Stop monitoring when needed
|
|
107
|
+
* stop();
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export function useRealtimeTaskTrigger(id, options) {
|
|
111
|
+
const triggerInstance = useTaskTrigger(id, options);
|
|
112
|
+
const realtimeInstance = useRealtimeRun(triggerInstance.handle?.id, {
|
|
113
|
+
...options,
|
|
114
|
+
id: triggerInstance.handle?.id,
|
|
115
|
+
accessToken: triggerInstance.handle?.publicAccessToken ?? options?.accessToken,
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
submit: triggerInstance.submit,
|
|
119
|
+
isLoading: triggerInstance.isLoading,
|
|
120
|
+
handle: triggerInstance.handle,
|
|
121
|
+
run: realtimeInstance.run,
|
|
122
|
+
error: realtimeInstance.error ?? triggerInstance.error,
|
|
123
|
+
stop: realtimeInstance.stop,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=useTaskTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTaskTrigger.js","sourceRoot":"","sources":["../../../src/hooks/useTaskTrigger.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./contexts.js";
|
|
2
2
|
export * from "./hooks/useApiClient.js";
|
|
3
3
|
export * from "./hooks/useRun.js";
|
|
4
|
-
export * from "./hooks/
|
|
5
|
-
export * from "./hooks/
|
|
6
|
-
export * from "./hooks/useRealtimeBatch.js";
|
|
4
|
+
export * from "./hooks/useRealtime.js";
|
|
5
|
+
export * from "./hooks/useTaskTrigger.js";
|