Skip to content

Commit 641d6a3

Browse files
committed
refactor: convert remaining compute types to zod schemas
1 parent d8e478a commit 641d6a3

File tree

2 files changed

+34
-26
lines changed

2 files changed

+34
-26
lines changed

internal-packages/compute/src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ export { stripImageDigest } from "./imageRef.js";
44
export {
55
TemplateCreateRequestSchema,
66
TemplateCallbackPayloadSchema,
7+
InstanceCreateRequestSchema,
8+
InstanceCreateResponseSchema,
9+
InstanceSnapshotRequestSchema,
10+
SnapshotRestoreRequestSchema,
711
} from "./types.js";
812
export type {
913
TemplateCreateRequest,

internal-packages/compute/src/types.ts

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,36 @@ export type TemplateCallbackPayload = z.infer<typeof TemplateCallbackPayloadSche
2828

2929
// ── Instances ────────────────────────────────────────────────────────────────
3030

31-
export type InstanceCreateRequest = {
32-
name: string;
33-
image: string;
34-
env: Record<string, string>;
35-
cpu: number;
36-
memory_gb: number;
37-
metadata?: Record<string, unknown>;
38-
};
39-
40-
export type InstanceCreateResponse = {
41-
id: string;
42-
_timing?: unknown;
43-
};
44-
45-
export type InstanceSnapshotRequest = {
46-
callback: {
47-
url: string;
48-
metadata: Record<string, string>;
49-
};
50-
};
31+
export const InstanceCreateRequestSchema = z.object({
32+
name: z.string(),
33+
image: z.string(),
34+
env: z.record(z.string()),
35+
cpu: z.number(),
36+
memory_gb: z.number(),
37+
metadata: z.record(z.unknown()).optional(),
38+
});
39+
export type InstanceCreateRequest = z.infer<typeof InstanceCreateRequestSchema>;
40+
41+
export const InstanceCreateResponseSchema = z.object({
42+
id: z.string(),
43+
_timing: z.unknown().optional(),
44+
});
45+
export type InstanceCreateResponse = z.infer<typeof InstanceCreateResponseSchema>;
46+
47+
export const InstanceSnapshotRequestSchema = z.object({
48+
callback: z.object({
49+
url: z.string(),
50+
metadata: z.record(z.string()),
51+
}),
52+
});
53+
export type InstanceSnapshotRequest = z.infer<typeof InstanceSnapshotRequestSchema>;
5154

5255
// ── Snapshots ────────────────────────────────────────────────────────────────
5356

54-
export type SnapshotRestoreRequest = {
55-
name: string;
56-
metadata: Record<string, string>;
57-
cpu: number;
58-
memory_mb: number;
59-
};
57+
export const SnapshotRestoreRequestSchema = z.object({
58+
name: z.string(),
59+
metadata: z.record(z.string()),
60+
cpu: z.number(),
61+
memory_mb: z.number(),
62+
});
63+
export type SnapshotRestoreRequest = z.infer<typeof SnapshotRestoreRequestSchema>;

0 commit comments

Comments
 (0)