Something went wrong. Try again.
fork of hey-api/openapi-ts because I need some additional things
Something went wrong. Try again.
1.8 kB · 65 lines
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566import path from 'node:path';
import { detectInteractiveSession } from '@hey-api/codegen-core';import { ConfigError, getInput, getLogs, getParser } from '@hey-api/shared';import colors from 'ansi-colors';
import { getOutput } from './output/config';import { getPlugins } from './plugins';import type { Config } from './types';import type { ValidationResult } from './validate';
export type ResolvedJob = { config: Config; errors: Array<Error>; index: number;};
export function resolveConfig( validated: ValidationResult, dependencies: Record<string, string>,): ResolvedJob { const logs = getLogs(validated.job.config.logs); const input = getInput(validated.job.config); const output = getOutput(validated.job.config); const parser = getParser(validated.job.config);
output.path = path.resolve(process.cwd(), output.path);
let plugins: Pick<Config, 'plugins' | 'pluginOrder'>;
try { plugins = getPlugins({ dependencies, userConfig: validated.job.config }); } catch (error) { if (error instanceof ConfigError) { validated.errors.push(error); } plugins = { pluginOrder: [], plugins: {}, }; }
const config: Config = { configFile: validated.job.config.configFile ?? '', dryRun: validated.job.config.dryRun ?? false, input, interactive: validated.job.config.interactive ?? detectInteractiveSession(), logs, output, parser, pluginOrder: plugins.pluginOrder, plugins: plugins.plugins, };
if (logs.level === 'debug') { const jobPrefix = colors.gray(`[Job ${validated.job.index}] `); console.warn(`${jobPrefix}${colors.cyan('config:')}`, config); }
return { config, errors: validated.errors, index: validated.job.index, };}