|
1 | | -import { ListRunResponse, ListRunResponseItem, RunStatus } from "@trigger.dev/core/v3"; |
| 1 | +import { ListRunResponse, ListRunResponseItem, parsePacket, RunStatus } from "@trigger.dev/core/v3"; |
2 | 2 | import { Project, RuntimeEnvironment, TaskRunStatus } from "@trigger.dev/database"; |
3 | 3 | import assertNever from "assert-never"; |
4 | 4 | import { z } from "zod"; |
@@ -220,36 +220,46 @@ export class ApiRunListPresenter extends BasePresenter { |
220 | 220 |
|
221 | 221 | const results = await presenter.call(options); |
222 | 222 |
|
223 | | - const data: ListRunResponseItem[] = results.runs.map((run) => { |
224 | | - return { |
225 | | - id: run.friendlyId, |
226 | | - status: ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status), |
227 | | - taskIdentifier: run.taskIdentifier, |
228 | | - idempotencyKey: run.idempotencyKey, |
229 | | - version: run.version ?? undefined, |
230 | | - createdAt: new Date(run.createdAt), |
231 | | - updatedAt: new Date(run.updatedAt), |
232 | | - startedAt: run.startedAt ? new Date(run.startedAt) : undefined, |
233 | | - finishedAt: run.finishedAt ? new Date(run.finishedAt) : undefined, |
234 | | - delayedUntil: run.delayUntil ? new Date(run.delayUntil) : undefined, |
235 | | - isTest: run.isTest, |
236 | | - ttl: run.ttl ?? undefined, |
237 | | - expiredAt: run.expiredAt ? new Date(run.expiredAt) : undefined, |
238 | | - env: { |
239 | | - id: run.environment.id, |
240 | | - name: run.environment.slug, |
241 | | - user: run.environment.userName, |
242 | | - }, |
243 | | - tags: run.tags, |
244 | | - costInCents: run.costInCents, |
245 | | - baseCostInCents: run.baseCostInCents, |
246 | | - durationMs: run.usageDurationMs, |
247 | | - depth: run.depth, |
248 | | - ...ApiRetrieveRunPresenter.apiBooleanHelpersFromRunStatus( |
249 | | - ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status) |
250 | | - ), |
251 | | - }; |
252 | | - }); |
| 223 | + logger.debug("RunListPresenter results", { results }); |
| 224 | + |
| 225 | + const data: ListRunResponseItem[] = await Promise.all( |
| 226 | + results.runs.map(async (run) => { |
| 227 | + const metadata = await parsePacket({ |
| 228 | + data: run.metadata ?? undefined, |
| 229 | + dataType: run.metadataType, |
| 230 | + }); |
| 231 | + |
| 232 | + return { |
| 233 | + id: run.friendlyId, |
| 234 | + status: ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status), |
| 235 | + taskIdentifier: run.taskIdentifier, |
| 236 | + idempotencyKey: run.idempotencyKey, |
| 237 | + version: run.version ?? undefined, |
| 238 | + createdAt: new Date(run.createdAt), |
| 239 | + updatedAt: new Date(run.updatedAt), |
| 240 | + startedAt: run.startedAt ? new Date(run.startedAt) : undefined, |
| 241 | + finishedAt: run.finishedAt ? new Date(run.finishedAt) : undefined, |
| 242 | + delayedUntil: run.delayUntil ? new Date(run.delayUntil) : undefined, |
| 243 | + isTest: run.isTest, |
| 244 | + ttl: run.ttl ?? undefined, |
| 245 | + expiredAt: run.expiredAt ? new Date(run.expiredAt) : undefined, |
| 246 | + env: { |
| 247 | + id: run.environment.id, |
| 248 | + name: run.environment.slug, |
| 249 | + user: run.environment.userName, |
| 250 | + }, |
| 251 | + tags: run.tags, |
| 252 | + costInCents: run.costInCents, |
| 253 | + baseCostInCents: run.baseCostInCents, |
| 254 | + durationMs: run.usageDurationMs, |
| 255 | + depth: run.depth, |
| 256 | + metadata, |
| 257 | + ...ApiRetrieveRunPresenter.apiBooleanHelpersFromRunStatus( |
| 258 | + ApiRetrieveRunPresenter.apiStatusFromRunStatus(run.status) |
| 259 | + ), |
| 260 | + }; |
| 261 | + }) |
| 262 | + ); |
253 | 263 |
|
254 | 264 | return { |
255 | 265 | data, |
|
0 commit comments