UNPKG

@api-helper/template

Version:

根据 Swagger 的接口定义生成 TypeScript/JavaScript 的接口类型及其请求函数代码。

81 lines (80 loc) 5.93 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderRequestFunctionDeclare = void 0; var _changeCase = __importStar(require("change-case")); var helpers_1 = require("@api-helper/core/lib/helpers"); var render_request_function_1 = require("../lib/render-request-function"); var art_template_1 = __importDefault(require("../lib/art-template")); var render_interface_1 = require("../lib/render-interface"); var util_1 = require("../lib/utils/util"); function renderRequestFunctionDeclare(api, options) { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r; if (options === void 0) { options = {}; } if (!api) { return ''; } var dataKey = options === null || options === void 0 ? void 0 : options.dataKey; var isEmptyRequestData = (0, util_1.isEmptySchema)(api.requestDataSchema); var onRenderRequestFunctionName = (_a = options === null || options === void 0 ? void 0 : options.onRenderRequestFunctionName) !== null && _a !== void 0 ? _a : render_request_function_1.renderRequestFunctionName; var onRenderInterfaceName = (_b = options === null || options === void 0 ? void 0 : options.onRenderInterfaceName) !== null && _b !== void 0 ? _b : render_interface_1.renderInterfaceName; var responseDataSchema = dataKey ? (0, helpers_1.getSchema)(api.responseDataSchema, dataKey) : api.responseDataSchema; var headers = (_h = (_g = (_f = (_e = (_d = (_c = api.headers) === null || _c === void 0 ? void 0 : _c.params) === null || _d === void 0 ? void 0 : _d.map) === null || _e === void 0 ? void 0 : _e.call(_d, function (item) { return item.keyName; })) === null || _f === void 0 ? void 0 : _f.filter) === null || _g === void 0 ? void 0 : _g.call(_f, Boolean)) !== null && _h !== void 0 ? _h : []; var cookies = (_p = (_o = (_m = (_l = (_k = (_j = api.cookies) === null || _j === void 0 ? void 0 : _j.params) === null || _k === void 0 ? void 0 : _k.map) === null || _l === void 0 ? void 0 : _l.call(_k, function (item) { return item.keyName; })) === null || _m === void 0 ? void 0 : _m.filter) === null || _o === void 0 ? void 0 : _o.call(_m, Boolean)) !== null && _p !== void 0 ? _p : []; var templateTenderParams = { api: api, options: options, isEmptyRequestData: isEmptyRequestData, commentCode: (0, render_request_function_1.renderRequestFunctionComment)(api), formDataKeyNameListStr: JSON.stringify(api.formDataKeyNameList), pathParamKeyNameListStr: JSON.stringify(api.pathParamKeyNameList), queryStringKeyNameListStr: JSON.stringify(api.queryStringKeyNameList), headersStr: JSON.stringify(headers), cookiesStr: JSON.stringify(cookies), requestContentTypeStr: JSON.stringify((_q = api.requestContentType) !== null && _q !== void 0 ? _q : []), responseContentTypeStr: JSON.stringify((_r = api.responseContentType) !== null && _r !== void 0 ? _r : []), requestFunctionName: onRenderRequestFunctionName(api, { changeCase: _changeCase, }), requestDataInterfaceName: onRenderInterfaceName(api, { paramType: 'request', changeCase: _changeCase, schema: api.requestDataSchema, }), requestExtraDataInterfaceName: onRenderInterfaceName(api, { isExtraData: true, paramType: 'request', changeCase: _changeCase, schema: api.requestExtraDataSchema, }), responseDataInterfaceName: onRenderInterfaceName(api, { paramType: 'response', changeCase: _changeCase, schema: responseDataSchema, }), }; var code = art_template_1.default.render("\u300Aif commentCode\u300B\u300AcommentCode\u300B\n\u300A/if\u300Bdeclare const \u300ArequestFunctionName\u300B: {\n (data\u300Aif isEmptyRequestData\u300B?\u300A/if\u300B: \u300ArequestDataInterfaceName\u300B, extraData?: \u300Aif api.requestExtraDataSchema\u300B\u300ArequestExtraDataInterfaceName\u300B\u300Aelse\u300Bunknown\u300A/if\u300B, ...args: CurrentRequestFunctionRestArgsType): Promise<\u300AresponseDataInterfaceName\u300B>;\n requestConfig: {\n path: '\u300Aapi.path\u300B',\n method: '\u300Aapi.method.toLowerCase()\u300B',\u300Aif options.genHeaders\u300B\n headers: \u300AheadersStr\u300B,\u300A/if\u300B\u300Aif options.genCookies\u300B\n cookies: \u300AcookiesStr\u300B,\u300A/if\u300B\n requestContentType: \u300ArequestContentTypeStr\u300B,\u300Aif options.genResponseContentType\u300B\n responseContentType: \u300AresponseContentTypeStr\u300B,\u300A/if\u300B\n formDataKeyNameList: \u300AformDataKeyNameListStr\u300B,\n pathParamKeyNameList: \u300ApathParamKeyNameListStr\u300B,\n queryStringKeyNameList: \u300AqueryStringKeyNameListStr\u300B\n }\n};", templateTenderParams); return code; } exports.renderRequestFunctionDeclare = renderRequestFunctionDeclare;