transform hyphenated string to camelCase · colinhacks/zod · Discussion #2240
Created 3/2/2026 at 7:43:57 PM
You can extract it as a function:
import { camel, mapKeys } from "radash"; import { z } from "zod";
export const camelCaseSchemaDef = (schema: T) => z .record(z.any()) .transform((x) => mapKeys(x, camel)) .pipe(schema) as T;
Use it like:
export const summarySchema = camelCaseSchemaDef( z.object({ isArticle: z.boolean(), summary: z.string(), introduction: z.string(), terms: z.array(z.string()), }) );
type Summary = z.infer // type Summary = { // isArticle: z.boolean(), // summary: string, //. introduction: z.string(), //. terms: z.array(z.string()), // }
summarySchema.parse({ is_article: true, summary: "abc", introduction: "abc", terms: ["abc", "bca"], })
Public