I'm using Zod to validate HTTP request that contains JSON data. Currently, I'm using a pattern like the one that follows (simplified, for readability):
const z = require('zod')
const payloadSchema = z.object({ name: z.string(), age: z.number().min(18) })
const requestSchema = z.object({ payload: z.string() })
// ...
const req = requestSchema.parse(request)
const raw = JSON.parse(req.payload)
const payload = payloadSchema.parse(raw)
console.log(payload.name) // << this is what I'm interested into
Does Zod provide a more strait-forward way to deep parse a shape that contains JSON string that I don't know of?
const z = require('zod')
const payloadSchema = z.object({ name: z.string(), age: z.number().min(18) })
const requestSchema = z.object({ payload: z.string().json(payloadSchema) })
// ...
const req = requestSchema.parse(request)
console.log(req.payload.name) // << this is what I'm interested into