-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathresources.ts
More file actions
50 lines (42 loc) · 1.7 KB
/
resources.ts
File metadata and controls
50 lines (42 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { z } from "zod";
import { QueueManifest, RetryOptions, ScheduleMetadata } from "./schemas.js";
import { MachineConfig } from "./common.js";
export const TaskResource = z.object({
id: z.string(),
description: z.string().optional(),
filePath: z.string(),
exportName: z.string().optional(),
queue: QueueManifest.extend({ name: z.string().optional() }).optional(),
retry: RetryOptions.optional(),
machine: MachineConfig.optional(),
triggerSource: z.string().optional(),
schedule: ScheduleMetadata.optional(),
maxDuration: z.number().optional(),
ttl: z.string().or(z.number().nonnegative().int()).optional(),
// JSONSchema type - using z.unknown() for runtime validation to accept JSONSchema7
payloadSchema: z.unknown().optional(),
});
export type TaskResource = z.infer<typeof TaskResource>;
export const BackgroundWorkerSourceFileMetadata = z.object({
filePath: z.string(),
contents: z.string(),
contentHash: z.string(),
taskIds: z.array(z.string()),
});
export type BackgroundWorkerSourceFileMetadata = z.infer<typeof BackgroundWorkerSourceFileMetadata>;
export const BackgroundWorkerMetadata = z.object({
packageVersion: z.string(),
contentHash: z.string(),
cliPackageVersion: z.string().optional(),
tasks: z.array(TaskResource),
queues: z.array(QueueManifest).optional(),
sourceFiles: z.array(BackgroundWorkerSourceFileMetadata).optional(),
runtime: z.string().optional(),
runtimeVersion: z.string().optional(),
});
export type BackgroundWorkerMetadata = z.infer<typeof BackgroundWorkerMetadata>;
export const ImageDetailsMetadata = z.object({
contentHash: z.string(),
imageTag: z.string(),
});
export type ImageDetailsMetadata = z.infer<typeof ImageDetailsMetadata>;