UNPKG

typed-jd-union-cpsapi

Version:
70 lines (69 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function parseElement(data) { return { type: data.type, name: data.webPamer, desc: data.desc, required: data.required, elements: data.elements != null && data.elements.length > 0 ? data.elements.map((e) => parseElement(e)) : null }; } function formatElement(element) { const typeMap = { String: 'string', Number: 'number', Boolean: 'boolean', 'String[]': 'string[]', 'Number[]': 'number[]', 'Boolean[]': 'boolean[]' }; return ` /** ${element.desc}*/ ${element.name}${!element.required ? '?' : ''}:${element.elements != null ? `{ ${element.elements.map((e) => formatElement(e)).join('')} }${element.type.endsWith('[]') ? '[]' : ''}` : typeMap[element.type]} `; } function jdDefinitionToTS(jsonDef) { var _a; const apiInfo = { apiName: jsonDef.data.apiInfoDTO.apiName, znName: jsonDef.data.apiInfoDTO.znName, apiDesc: jsonDef.data.apiInfoDTO.apiDesc, params: parseElement(jsonDef.data.method.elements[1]), result: jsonDef.data.method.josResult.elements.map((e) => parseElement(e)), successCode: ((_a = jsonDef.data.apiErrorsDTOS.find((d) => d.solution == '调用成功')) === null || _a === void 0 ? void 0 : _a.code) || '200' }; const firstUppercase = (str) => str.substring(0, 1).toUpperCase() + str.substring(1); const firstLowercase = (str) => str.substring(0, 1).toLowerCase() + str.substring(1); const apiKey = jsonDef.data.apiInfoDTO.apiName .split('.') .slice(3) .reverse() .map((k) => firstUppercase(k)) .join(''); const paramsTSD = `export type ${apiKey}Params = { ${formatElement(apiInfo.params)} }`; const resultTSD = `export type ${apiKey}Result = { ${apiInfo.result[0].elements.map((e) => formatElement(e)).join('')} }`; return ` import { JdUnionBase } from '../api-base' ${paramsTSD} ${resultTSD} export class ${apiKey}API extends JdUnionBase { async ${firstLowercase(apiKey)}(params:${apiKey}Params){ return this.execute<${apiKey}Result>('${apiInfo.apiName}', params) } } `; } exports.default = jdDefinitionToTS; //# sourceMappingURL=jd-def-tool.js.map