···2323Launch demo
2424</button>
25252626+## Features
2727+2828+- seamless integration with `@hey-api/openapi-ts` ecosystem
2929+- type-safe response data and errors
3030+- response data validation and transformation
3131+- access to the original request and response
3232+- granular request and response customization options
3333+- minimal learning curve thanks to extending the underlying technology
3434+- support bundling inside the generated output
3535+2636## Installation
27372838Start by adding `@hey-api/client-axios` to your dependencies.
+10
docs/openapi-ts/clients/fetch.md
···2323Launch demo
2424</button>
25252626+## Features
2727+2828+- seamless integration with `@hey-api/openapi-ts` ecosystem
2929+- type-safe response data and errors
3030+- response data validation and transformation
3131+- access to the original request and response
3232+- granular request and response customization options
3333+- minimal learning curve thanks to extending the underlying technology
3434+- support bundling inside the generated output
3535+2636## Installation
27372838Start by adding `@hey-api/client-fetch` to your dependencies.
+10
docs/openapi-ts/clients/next-js.md
···1717Launch demo
1818</button> -->
19192020+## Features
2121+2222+- seamless integration with `@hey-api/openapi-ts` ecosystem
2323+- type-safe response data and errors
2424+- response data validation and transformation
2525+- access to the original request and response
2626+- granular request and response customization options
2727+- minimal learning curve thanks to extending the underlying technology
2828+- support bundling inside the generated output
2929+2030## Installation
21312232Start by adding `@hey-api/client-next` to your dependencies.
+10
docs/openapi-ts/clients/nuxt.md
···2121Launch demo
2222</button> -->
23232424+## Features
2525+2626+- seamless integration with `@hey-api/openapi-ts` ecosystem
2727+- type-safe response data and errors
2828+- response data validation and transformation
2929+- access to the original request and response
3030+- granular request and response customization options
3131+- minimal learning curve thanks to extending the underlying technology
3232+- support bundling inside the generated output
3333+2434## Installation
25352636Start by adding `@hey-api/client-nuxt` to your dependencies.
+1-1
docs/openapi-ts/plugins/tanstack-query.md
···110110111111## Output
112112113113-The TanStack Query plugin will optionally generate the following artifacts, depending on the input specification.
113113+The TanStack Query plugin will generate the following artifacts, depending on the input specification.
114114115115## Queries
116116
+52-4
docs/openapi-ts/plugins/valibot.md
···33description: Valibot plugin for Hey API. Compatible with all our features.
44---
5566+<!-- <script setup>
77+import { embedProject } from '../../embed'
88+</script> -->
99+610# Valibot
711812::: warning
99-This feature is in development! :tada: Try it out and provide feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues/1474).
1313+Valibot plugin is currently in beta. The interface might change before it becomes stable. We encourage you to leave feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues/1474).
1014:::
11151216### About
···2226## Features
23272428- seamless integration with `@hey-api/openapi-ts` ecosystem
2525-- Valibot schemas for requests, responses, and reusable components
2929+- Valibot schemas for request payloads, parameters, and responses
26302731## Installation
2832···4246};
4347```
44484545-## SDKs
4949+### SDKs
46504751To automatically validate response data in your SDKs, set `sdk.validator` to `true`.
4852···68726973The Valibot plugin will generate the following artifacts, depending on the input specification.
70747575+## Responses
7676+7777+A single Valibot schema is generated for all endpoint's responses. If the endpoint describes multiple responses, the generated schema is a union of all possible response shapes.
7878+7979+```ts
8080+const vResponse = v.union([
8181+ v.object({
8282+ foo: v.optional(v.string()),
8383+ }),
8484+ v.object({
8585+ bar: v.optional(v.number()),
8686+ }),
8787+]);
8888+```
8989+9090+## Request Bodies
9191+9292+If an endpoint describes a request body, we will generate a Valibot schema representing its shape.
9393+9494+```ts
9595+const vData = v.object({
9696+ foo: v.optional(v.string()),
9797+ bar: v.optional(v.union([v.number(), v.null()])),
9898+});
9999+```
100100+101101+## Parameters
102102+103103+A separate Valibot schema is generated for every request parameter.
104104+105105+```ts
106106+const vParameterFoo = v.pipe(v.number(), v.integer());
107107+108108+const vParameterBar = v.string();
109109+```
110110+71111## Schemas
721127373-More information will be provided as we finalize the plugin.
113113+A separate Valibot schema is generated for every reusable schema.
114114+115115+```ts
116116+const vFoo = v.pipe(v.number(), v.integer());
117117+118118+const vBar = v.object({
119119+ bar: v.optional(v.union([v.array(v.unknown()), v.null()])),
120120+});
121121+```
7412275123<!--@include: ../../examples.md-->
76124<!--@include: ../../sponsors.md-->
+52-4
docs/openapi-ts/plugins/zod.md
···33description: Zod plugin for Hey API. Compatible with all our features.
44---
5566+<!-- <script setup>
77+import { embedProject } from '../../embed'
88+</script> -->
99+610# Zod
711812::: warning
99-This feature is in development! :tada: Try it out and provide feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues/876).
1313+Zod plugin is currently in beta. The interface might change before it becomes stable. We encourage you to leave feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues/876).
1014:::
11151216### About
···2226## Features
23272428- seamless integration with `@hey-api/openapi-ts` ecosystem
2525-- Zod schemas for requests, responses, and reusable components
2929+- Zod schemas for request payloads, parameters, and responses
26302731## Installation
2832···4246};
4347```
44484545-## SDKs
4949+### SDKs
46504751To automatically validate response data in your SDKs, set `sdk.validator` to `true`.
4852···68726973The Zod plugin will generate the following artifacts, depending on the input specification.
70747575+## Responses
7676+7777+A single Zod schema is generated for all endpoint's responses. If the endpoint describes multiple responses, the generated schema is a union of all possible response shapes.
7878+7979+```ts
8080+const zResponse = z.union([
8181+ z.object({
8282+ foo: z.string().optional(),
8383+ }),
8484+ z.object({
8585+ bar: z.number().optional(),
8686+ }),
8787+]);
8888+```
8989+9090+## Request Bodies
9191+9292+If an endpoint describes a request body, we will generate a Zod schema representing its shape.
9393+9494+```ts
9595+const zData = z.object({
9696+ foo: z.string().optional(),
9797+ bar: z.union([z.number(), z.null()]).optional(),
9898+});
9999+```
100100+101101+## Parameters
102102+103103+A separate Zod schema is generated for every request parameter.
104104+105105+```ts
106106+const zParameterFoo = z.number().int();
107107+108108+const zParameterBar = z.string();
109109+```
110110+71111## Schemas
721127373-More information will be provided as we finalize the plugin.
113113+A separate Zod schema is generated for every reusable schema.
114114+115115+```ts
116116+const zFoo = z.number().int();
117117+118118+const zBar = z.object({
119119+ bar: z.array(z.number().int()).optional(),
120120+});
121121+```
7412275123<!--@include: ../../examples.md-->
76124<!--@include: ../../sponsors.md-->