import type { BackgroundWorkerMetadata } from "@trigger.dev/core/v3"; import type { Prisma } from "@trigger.dev/database"; /** * Strip BackgroundWorkerMetadata down to the slice that's actually read after * storage. Everything else is duplicated to dedicated columns/tables * (BackgroundWorker.{contentHash,cliVersion,sdkVersion,runtime,runtimeVersion}, * BackgroundWorkerTask, BackgroundWorkerFile, TaskQueue, Prompt). Today the * only post-write reader is changeCurrentDeployment.server.ts, which feeds * tasks[].schedule into syncDeclarativeSchedules. packageVersion, contentHash, * and tasks[].filePath are kept solely to satisfy BackgroundWorkerMetadata's * required fields when the column is parsed back. */ export function stripBackgroundWorkerMetadataForStorage( metadata: BackgroundWorkerMetadata ): Prisma.InputJsonValue { return { packageVersion: metadata.packageVersion, contentHash: metadata.contentHash, tasks: metadata.tasks .filter((t) => t.schedule) .map((t) => ({ id: t.id, filePath: t.filePath, schedule: t.schedule, })), }; }