/// import { Options } from '../interface/config'; import { Ci } from '../base'; import { SchemaParser } from './paser'; import { Swagger2_Docs, Swagger2_Groups_Item } from 'src/interface/swagger2/doc'; import { API } from 'src/interface/common'; export default class Swagger2 extends Ci { options: Options; outputDir: string; private getSchema; /** * 获取swaggerDoc的json数据 * @param url 默认: options.docUrl + options.path * @returns */ openUrl(url?: string): Promise; /** * 获取服务分组列表 * http://domain.com/swagger-resources * ?group=tl-smo-service */ fetchServerGroups(): Promise; /** * 转化ast * @param docs api文档返回的json */ ast(docs?: Swagger2_Docs): SchemaParser | undefined; /** 写入interface */ createTypes(types: Record): Promise; /** 写入service */ createAPIService(apis: API[]): Promise; endOfLine(): string; toUpCase(name: string): string; /** 写入api-url */ createAPIUrlConf(apis: API[]): void; /** * 占位符替换 */ replaceKeyword(keyword: string, content: string): string; /** * 文件替换内容 * @param basePath * @param fileName * @param origin * @param data * @param anchor * @returns */ replaceFileContent(basePath: string, fileName: string, origin: string, data: string, anchor: string): Promise; /** * 创建文件并写入 * @param basePath * @param fileName * @param data * @param overwrite * @returns */ writeFile(basePath: string, fileName: string, data: Buffer | string, overwrite?: boolean): Promise; /** 写入api */ createApi(apis: any): void; /** 过滤多余api */ filterRuleDocs(doc: Swagger2_Docs): Swagger2_Docs | undefined; /** * 单次执行 */ singleThread(group?: Swagger2_Groups_Item): Promise; /** 合并对象 */ combineTypes(origin: any, aim: any): any; run(): Promise; }