fork of hey-api/openapi-ts because I need some additional things
at feat/skip-token 57 lines 1.5 kB view raw
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}