fork of hey-api/openapi-ts because I need some additional things
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}