fork of hey-api/openapi-ts because I need some additional things
at feat/use-query-options-param 49 lines 1.2 kB view raw
1import { sdk, tanstackReactQuery, transformers, typescript, valibot, zod } from './plugins'; 2 3export const presets = { 4 full: () => [ 5 /** Full kitchen sink for comprehensive testing */ 6 typescript(), 7 sdk({ paramsStructure: 'flat' }), 8 transformers(), 9 zod({ metadata: true }), 10 tanstackReactQuery({ queryKeys: { tags: true } }), 11 ], 12 minimal: () => [ 13 /** Just types, nothing else */ 14 typescript(), 15 ], 16 sdk: () => [ 17 /** SDK with types */ 18 typescript(), 19 sdk({ 20 operations: { 21 containerName: 'OpenCode', 22 strategy: 'single', 23 }, 24 }), 25 ], 26 tanstack: () => [ 27 /** SDK + TanStack Query */ 28 typescript(), 29 sdk(), 30 tanstackReactQuery({ queryKeys: { tags: true } }), 31 ], 32 validated: () => [ 33 /** SDK + Zod validation */ 34 typescript(), 35 sdk({ validator: 'zod' }), 36 valibot({ metadata: true }), 37 zod({ metadata: true }), 38 ], 39} as const; 40 41export type PresetKey = keyof typeof presets; 42 43export function getPreset(key: PresetKey = (process.env.PRESET as PresetKey) || 'sdk') { 44 const preset = presets[key]; 45 if (!preset) { 46 throw new Error(`Unknown preset: ${key}. Available: ${Object.keys(presets).join(', ')}`); 47 } 48 return preset(); 49}