11import chalk from 'chalk' ;
22import { cosmiconfig } from 'cosmiconfig' ;
3- import { CosmiconfigResult } from 'cosmiconfig/dist/types' ;
43import fs from 'fs/promises' ;
54import path from 'path' ;
65import { generateApi } from 'swagger-typescript-api' ;
6+ import { defineConfig } from './configure' ;
77import { axiosImportDefault , helpersImport , templatesDir } from './const' ;
8- import { Config , Oas } from './types' ;
8+ import { StrictConfig , Oas , UserConfig } from './types' ;
99import { exitError , normalizeError , tryCatch } from './utils' ;
1010
11- export async function generateItem ( oas : Oas , config : Config ) {
11+ export async function generateItem ( oas : Oas , config : StrictConfig ) {
1212 const { name, url, spec, axiosImport : axiosImportScope } = oas ;
1313 const { cwd, dest, axiosImport : axiosImportGlobal , unwrapResponseData } = config ;
1414 const axiosImport = axiosImportScope || axiosImportGlobal || axiosImportDefault ;
@@ -33,7 +33,7 @@ export async function generateItem(oas: Oas, config: Config) {
3333 }
3434}
3535
36- export async function generate ( config : Config ) {
36+ export async function generate ( config : StrictConfig ) {
3737 const { list } = config ;
3838 let step = 0 ;
3939 const length = list . length ;
@@ -61,7 +61,11 @@ export async function start() {
6161 return exitError ( '配置文件未找到' ) ;
6262 }
6363
64- const config = result . config as Config ;
64+ const config = result . filepath . endsWith ( 'js' )
65+ ? // js 文件使用 defineConfig,返回的是 StrictConfig
66+ ( result . config as StrictConfig )
67+ : // json 文件是纯文本,返回的 UserConfig
68+ defineConfig ( result . config as UserConfig ) ;
6569
6670 try {
6771 await generate ( config ) ;
0 commit comments