psteinroe / supabase-to-zod

Generate Zod schemas (v3) from Typescript types generated by the Supabase CLI.
MIT License
107 stars 6 forks source link

supabase-to-zod

Generate Zod schemas (v3) from Typescript types generated by the Supabase CLI.

Version License

Usage

$ 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.

Authors Note

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.