UNPKG

openapi-ts-request

Version:

Swagger2/OpenAPI3/Apifox to TypeScript/JavaScript, request client(support any client), request mock service, enum and enum translation, react-query/vue-query, type field label, JSON Schemas

48 lines (47 loc) 2.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateService = generateService; const tslib_1 = require("tslib"); const lodash_1 = require("lodash"); const config_1 = require("./config"); const config_2 = require("./generator/config"); const mockGenarator_1 = require("./generator/mockGenarator"); const serviceGenarator_1 = tslib_1.__importDefault(require("./generator/serviceGenarator")); const util_1 = require("./util"); tslib_1.__exportStar(require("./generator/patchSchema"), exports); function generateService(_a) { return tslib_1.__awaiter(this, void 0, void 0, function* () { var { requestLibPath, schemaPath, mockFolder, includeTags, excludeTags, authorization, isTranslateToEnglishTag, priorityRule = config_1.PriorityRule.include, timeout = 60000, reactQueryMode = config_1.ReactQueryMode.react, apifoxConfig } = _a, rest = tslib_1.__rest(_a, ["requestLibPath", "schemaPath", "mockFolder", "includeTags", "excludeTags", "authorization", "isTranslateToEnglishTag", "priorityRule", "timeout", "reactQueryMode", "apifoxConfig"]); if (!schemaPath && !apifoxConfig) { return; } let openAPI = null; if (apifoxConfig) { openAPI = (yield (0, util_1.getOpenAPIConfigByApifox)(apifoxConfig)); } if (schemaPath) { openAPI = (yield (0, util_1.getOpenAPIConfig)(schemaPath, authorization, timeout)); } if (!openAPI || (0, lodash_1.isEmpty)(openAPI)) { return; } if (isTranslateToEnglishTag) { yield (0, util_1.translateChineseModuleNodeToEnglish)(openAPI); } const requestImportStatement = (0, util_1.getImportStatement)(requestLibPath); const serviceGenerator = new serviceGenarator_1.default(Object.assign({ schemaPath, serversPath: './src/apis', requestImportStatement, enableLogging: false, priorityRule, includeTags: includeTags ? (0, lodash_1.map)(includeTags, (item) => typeof item === 'string' ? item.toLowerCase() : item) : priorityRule === config_1.PriorityRule.include ? [/.*/g] : null, excludeTags: excludeTags ? (0, lodash_1.map)(excludeTags, (item) => typeof item === 'string' ? item.toLowerCase() : item) : null, requestOptionsType: '{[key: string]: unknown}', namespace: 'API', isGenReactQuery: false, reactQueryMode, isGenJavaScript: false, isDisplayTypeLabel: false, isGenJsonSchemas: false, nullable: false, isOnlyGenTypeScriptType: false, isCamelCase: true, isSupportParseEnumDesc: false, full: true }, rest), openAPI); serviceGenerator.genFile(); if (mockFolder) { (0, mockGenarator_1.mockGenerator)({ openAPI, mockFolder: mockFolder, }); } }); }