Skip to content

Commit 1a380fa

Browse files
committed
fix: 兼容 JSON 配置文件
Closes: #48
1 parent 6a36926 commit 1a380fa

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/configure.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { axiosImportDefault } from './const';
2-
import { Config, UserConfig } from './types';
2+
import { StrictConfig, UserConfig } from './types';
33

4-
export const defaults: Config = {
4+
export const defaults: StrictConfig = {
55
cwd: process.cwd(),
66
dest: 'src/apis',
77
axiosImport: axiosImportDefault,
@@ -10,5 +10,5 @@ export const defaults: Config = {
1010
};
1111

1212
export function defineConfig(config: UserConfig) {
13-
return Object.assign({}, defaults, config);
13+
return Object.assign({}, defaults, config) as StrictConfig;
1414
}

src/generator.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ import { cosmiconfig } from 'cosmiconfig';
33
import fs from 'fs/promises';
44
import path from 'path';
55
import { generateApi } from 'swagger-typescript-api';
6+
import { defineConfig } from './configure';
67
import { axiosImportDefault, helpersImport, templatesDir } from './const';
7-
import { Config, Oas } from './types';
8+
import { StrictConfig, Oas, UserConfig } from './types';
89
import { exitError, normalizeError, tryCatch } from './utils';
910

10-
export async function generateItem(oas: Oas, config: Config) {
11+
export async function generateItem(oas: Oas, config: StrictConfig) {
1112
const { name, url, spec, axiosImport: axiosImportScope } = oas;
1213
const { cwd, dest, axiosImport: axiosImportGlobal, unwrapResponseData } = config;
1314
const axiosImport = axiosImportScope || axiosImportGlobal || axiosImportDefault;
@@ -32,7 +33,7 @@ export async function generateItem(oas: Oas, config: Config) {
3233
}
3334
}
3435

35-
export async function generate(config: Config) {
36+
export async function generate(config: StrictConfig) {
3637
const { list } = config;
3738
let step = 0;
3839
const length = list.length;
@@ -60,7 +61,11 @@ export async function start() {
6061
return exitError('配置文件未找到');
6162
}
6263

63-
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);
6469

6570
try {
6671
await generate(config);

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export interface UserConfig {
5353
list: Oas[];
5454
}
5555

56-
export type Config = Required<UserConfig>;
56+
export type StrictConfig = Required<UserConfig>;
5757

5858
export enum ContentKind {
5959
JSON = 'JSON',

0 commit comments

Comments
 (0)