From 398f22be7bba875974285822b109c0101c85f74b Mon Sep 17 00:00:00 2001 From: tapheret2 Date: Wed, 15 Jul 2026 11:53:50 +0700 Subject: [PATCH] feat: validate request bodies with Zod See PR body. --- src/validation.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/validation.ts diff --git a/src/validation.ts b/src/validation.ts new file mode 100644 index 0000000..6ae8f08 --- /dev/null +++ b/src/validation.ts @@ -0,0 +1,23 @@ +import { z, ZodSchema } from "zod"; + +export function parseBody(schema: ZodSchema, body: unknown) { + const result = schema.safeParse(body); + if (result.success) return { ok: true as const, data: result.data }; + return { + ok: false as const, + status: 400 as const, + error: { + message: "Validation failed", + issues: result.error.issues.map((i) => ({ + path: i.path.join("."), + message: i.message, + })), + }, + }; +} + +export const paySchema = z.object({ + amount: z.number().positive(), + asset: z.string().min(1), + destination: z.string().min(1), +});