fork of hey-api/openapi-ts because I need some additional things
1import type { UserConfig } from '@hey-api/openapi-ts';
2
3type PluginConfig = NonNullable<NonNullable<UserConfig['plugins']>[number]>;
4
5export function typescript(
6 options?: Omit<Extract<PluginConfig, { name: '@hey-api/typescript' }>, 'name'>,
7): Extract<PluginConfig, { name: '@hey-api/typescript' }> {
8 return {
9 name: '@hey-api/typescript' as const,
10 ...options,
11 };
12}
13
14export function sdk(
15 options?: Omit<Extract<PluginConfig, { name: '@hey-api/sdk' }>, 'name'>,
16): Extract<PluginConfig, { name: '@hey-api/sdk' }> {
17 return {
18 name: '@hey-api/sdk' as const,
19 ...options,
20 };
21}
22
23export function zod(
24 options?: Omit<Extract<PluginConfig, { name: 'zod' }>, 'name'>,
25): Extract<PluginConfig, { name: 'zod' }> {
26 return {
27 name: 'zod' as const,
28 ...options,
29 };
30}
31
32export function valibot(
33 options?: Omit<Extract<PluginConfig, { name: 'valibot' }>, 'name'>,
34): Extract<PluginConfig, { name: 'valibot' }> {
35 return {
36 name: 'valibot' as const,
37 ...options,
38 };
39}
40
41export function tanstackReactQuery(
42 options?: Omit<Extract<PluginConfig, { name: '@tanstack/react-query' }>, 'name'>,
43): Extract<PluginConfig, { name: '@tanstack/react-query' }> {
44 return {
45 name: '@tanstack/react-query' as const,
46 ...options,
47 };
48}
49
50export function transformers(
51 options?: Omit<Extract<PluginConfig, { name: '@hey-api/transformers' }>, 'name'>,
52): Extract<PluginConfig, { name: '@hey-api/transformers' }> {
53 return {
54 name: '@hey-api/transformers' as const,
55 ...options,
56 };
57}