MCPcopy Create free account
hub / github.com/ReviewStage/stage-cli / parseJsonBody

Function parseJsonBody

packages/cli/src/routes/json.ts:32–50  ·  view source on GitHub ↗
(
	req: IncomingMessage,
	res: ServerResponse,
	schema: z.ZodType<T>,
)

Source from the content-addressed store, hash-verified

30 * Callers should `return` immediately when the result is null.
31 */
32export async function parseJsonBody<T>(
33 req: IncomingMessage,
34 res: ServerResponse,
35 schema: z.ZodType<T>,
36): Promise<T | null> {
37 let raw: unknown;
38 try {
39 raw = await readJsonBody(req);
40 } catch (err) {
41 writeJson(res, 400, { error: err instanceof Error ? err.message : "Invalid JSON body" });
42 return null;
43 }
44 const parsed = schema.safeParse(raw);
45 if (!parsed.success) {
46 writeJson(res, 400, { error: parsed.error.issues[0]?.message ?? "Invalid request body" });
47 return null;
48 }
49 return parsed.data;
50}

Callers 3

viewStateRoutesFunction · 0.90
commentRoutesFunction · 0.90

Calls 2

readJsonBodyFunction · 0.85
writeJsonFunction · 0.85

Tested by

no test coverage detected