123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { defineConfig } from 'yapi-to-typescript';
- interface IConfig {
- ids: number[]; // 分类 ids,可以将多个分类中的接口信息生成到同一个 ts 文件中
- name: string; // 输出的 ts 文件存储模块文件夹名称,对应的文件夹名称为 src/ytt-type/[name]
- token?: string; // 项目 Token, 如果不填就用公共的 Token
- }
- const TOKEN = 'xxx';
- const config: IConfig[] = [
- { ids: [11474], name: 'assistant' },
- { ids: [11476], name: 'threads' },
- { ids: [11478], name: 'messages' },
- { ids: [11480], name: 'runs' },
- { ids: [11482], name: 'files' }
- ];
- const createCategories = function (ids: number[]) {
- return ids.map((id) => ({
- id,
- // 自定义ts中interface名称生成规则
- getRequestFunctionName(interfaceInfo: any, changeCase: any) {
- // path肯定是唯一的
- const list = interfaceInfo.path.split('/') as string[];
- // 添加method用于区分post,get,put请求可能path相同
- const firstWord = list[0].toLowerCase();
- if (!/^get|^post|^put|^delete/.test(firstWord)) {
- list.unshift(interfaceInfo.method);
- }
- return changeCase.camelCase(list.join(' '));
- }
- }));
- };
- export default defineConfig(
- config.map((item) => ({
- // 1. 此处配置yapi的访问地址
- serverUrl: 'https://yapi.com',
- typesOnly: false,
- target: 'typescript',
- reactHooks: {
- enabled: false
- },
- prodEnvName: 'production',
- outputFilePath: `src/ytt-type/${item.name}/index.ts`,
- requestFunctionFilePath: `src/ytt-type/${item.name}/request.ts`,
- // dataKey: 'data',
- projects: [
- {
- // 2. 此处配置yapi项目的访问token
- token: item.token ?? TOKEN,
- categories: createCategories(item.ids)
- }
- ]
- }))
- );
|