- Updated readme
-
a8ad03d:
zod-fetch
is a simple API for building a type and runtime-safe fetcher function using Zod schemas.You can create a fetcher using
createZodFetcher
:import { z } from "zod"; import { createZodFetcher } from "zod-fetch"; const fetchWithZod = createZodFetcher(); fetchWithZod( // The schema you want to validate with z.object({ hello: "world", }), // Any parameters you would usually pass to fetch "/my-api" ).then((res) => { console.log(res); // ^? { hello: string } });
If you don't pass a fetcher to
createZodFetcher
, it uses a sensible default fetcher (using thefetch
API) to grab the data needed.You can pass custom fetchers to
createZodFetcher
:import { z } from "zod"; import { createZodFetcher } from "zod-fetch"; import axios from "axios"; const fetchWithZod = createZodFetcher(axios.get); fetchWithZod( z.object({ data: z.object({ name: z.string(), }), }), "/user", { params: { id: 12345, }, } ).then((res) => { console.log(res); // ^? { data: { name: string } } });