Generate Zod schemas (v3) from Typescript types generated by the Supabase CLI.
Note
@dohoo forked this project and created SupaZod. It's a significant improvement, and I recommend trying it out instead: https://github.com/dohooo/supazod
$ pnpm add --D supabase-to-zod
$ supabase gen types typescript --local > types.ts
$ pnpm supabase-to-zod --input types.ts --output schemas.ts
That's it, go to schemas.ts
file, you should have a schema for all tables, views, enums and functions.
This project was created in a few hours during the Launchweek VI hackathon and the approach is very hacky: It transforms the nested Database
type generated by the Supabase CLI into flat types, and passes them through ts-to-zod
to generate zod schemas. A proper solution would be using the pg-meta API to generate zod schemas directly from the source of truth, similar to how the Typescript types are generated.