fork of hey-api/openapi-ts because I need some additional things
at feat/use-query-options-param 44 lines 1.5 kB view raw
1import type { OperationPathStrategy, OperationStructureStrategy } from '@hey-api/shared'; 2import { OperationPath, OperationStrategy } from '@hey-api/shared'; 3 4import type { HeyApiSdkPlugin } from '../types'; 5 6function resolvePath(plugin: HeyApiSdkPlugin['Instance']): OperationPathStrategy { 7 if (plugin.config.operations.nesting === 'id') { 8 return OperationPath.id(); 9 } 10 11 if (plugin.config.operations.nesting === 'operationId') { 12 return OperationPath.fromOperationId({ 13 delimiters: plugin.config.operations.nestingDelimiters, 14 fallback: OperationPath.id(), 15 }); 16 } 17 18 return plugin.config.operations.nesting; 19} 20 21export function resolveStrategy(plugin: HeyApiSdkPlugin['Instance']): OperationStructureStrategy { 22 // if (plugin.config.operations.strategy === 'flat') { 23 // return OperationStrategy.flat({ 24 // path: (operation) => [resolvePath(plugin)(operation).join('.')], 25 // }); 26 // } 27 28 if (plugin.config.operations.strategy === 'single') { 29 const root = plugin.config.operations.containerName; 30 return OperationStrategy.single({ 31 path: resolvePath(plugin), 32 root: typeof root.name === 'string' ? root.name : (root.name?.('') ?? ''), 33 }); 34 } 35 36 if (plugin.config.operations.strategy === 'byTags') { 37 return OperationStrategy.byTags({ 38 fallback: plugin.config.operations.strategyDefaultTag, 39 path: resolvePath(plugin), 40 }); 41 } 42 43 return plugin.config.operations.strategy; 44}