fork of hey-api/openapi-ts because I need some additional things
at feat/skip-token 39 lines 1.2 kB view raw
1import type { ToArray } from '@hey-api/types'; 2 3import type { UserConfig } from '../config/types'; 4import type { CliOptions } from './schema'; 5 6export const cliToConfig = (cli: CliOptions): Partial<UserConfig> => { 7 const config: Partial<UserConfig> = {}; 8 9 if (cli.input) config.input = cli.input; 10 if (cli.output) config.output = cli.output; 11 if (cli.file) config.configFile = cli.file; 12 if (cli.dryRun !== undefined) config.dryRun = cli.dryRun; 13 14 const plugins: ToArray<UserConfig['plugins']> = []; 15 if (cli.plugins instanceof Array && cli.plugins.length > 0) { 16 plugins.push(...cli.plugins); 17 } 18 // if (cli.client) plugins.push(cli.client); 19 if (plugins.length > 0) config.plugins = plugins; 20 21 if (cli.debug || cli.silent || cli.logs || cli.logFile !== undefined) { 22 config.logs = { 23 ...(cli.logs && { path: cli.logs }), 24 ...(cli.debug && { level: 'debug' as const }), 25 ...(cli.silent && { level: 'silent' as const }), 26 ...(cli.logFile !== undefined && { file: cli.logFile }), 27 }; 28 } 29 30 if (cli.watch !== undefined) { 31 if (typeof cli.watch === 'string') { 32 config.watch = Number.parseInt(cli.watch, 10); 33 } else { 34 config.watch = cli.watch; 35 } 36 } 37 38 return config; 39};