anncic-api 3.7.17 → 3.7.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.default.js +51 -1
- package/dist/config/config.local.js +10 -1
- package/dist/config/config.production.js +7 -1
- package/dist/configuration.js +292 -1
- package/dist/decorator/Action.js +200 -1
- package/dist/decorator/ActionApitest.js +25 -1
- package/dist/decorator/Intercept.js +30 -1
- package/dist/exception/ApiError.js +46 -1
- package/dist/helper/getAppsConfig.js +10 -1
- package/dist/helper/getRoutes.js +219 -1
- package/dist/helper/getSwaggerJson.js +419 -1
- package/dist/index.js +69 -1
- package/dist/service/ApiService.js +82 -1
- package/dist/service/ApitestService.js +137 -1
- package/dist/service/ExcelService.js +162 -1
- package/dist/service/ExcelStream.js +221 -1
- package/dist/types/action.js +11 -1
- package/dist/types/common.js +33 -1
- package/dist/types/intercept.js +8 -1
- package/package.json +8 -8
package/dist/helper/getRoutes.js
CHANGED
|
@@ -1 +1,219 @@
|
|
|
1
|
-
const a9_0x48831f=a9_0x3232;(function(_0x4286d9,_0xfa1b09){const _0x422d7b=a9_0x3232,_0x39fab1=_0x4286d9();while(!![]){try{const _0x40e87d=parseInt(_0x422d7b(0x18f))/0x1+-parseInt(_0x422d7b(0x16d))/0x2*(parseInt(_0x422d7b(0x1a0))/0x3)+-parseInt(_0x422d7b(0x1a6))/0x4*(parseInt(_0x422d7b(0x1b6))/0x5)+-parseInt(_0x422d7b(0x15a))/0x6+-parseInt(_0x422d7b(0x179))/0x7+parseInt(_0x422d7b(0x16a))/0x8*(parseInt(_0x422d7b(0x153))/0x9)+parseInt(_0x422d7b(0x167))/0xa;if(_0x40e87d===_0xfa1b09)break;else _0x39fab1['push'](_0x39fab1['shift']());}catch(_0x1faf1f){_0x39fab1['push'](_0x39fab1['shift']());}}}(a9_0x5211,0xd9e37));const a9_0x4a7915=(function(){let _0x52e731=!![];return function(_0x55c783,_0x52e4a4){const _0x4f42f4=_0x52e731?function(){const _0x5ce8e8=a9_0x3232;if(_0x52e4a4){const _0x2bfe1=_0x52e4a4[_0x5ce8e8(0x17c)](_0x55c783,arguments);return _0x52e4a4=null,_0x2bfe1;}}:function(){};return _0x52e731=![],_0x4f42f4;};}()),a9_0x477585=a9_0x4a7915(this,function(){const _0x1334dc=a9_0x3232;return a9_0x477585['toString']()['search'](_0x1334dc(0x198))[_0x1334dc(0x163)]()[_0x1334dc(0x180)](a9_0x477585)[_0x1334dc(0x173)](_0x1334dc(0x198));});a9_0x477585();'use strict';Object[a9_0x48831f(0x1a5)](exports,'__esModule',{'value':!![]}),exports[a9_0x48831f(0x157)]=getRoutes;const lodash_1=require(a9_0x48831f(0x14b)),validator_1=require(a9_0x48831f(0x172)),core_1=require(a9_0x48831f(0x152)),core_2=require('@midwayjs/core'),core_3=require(a9_0x48831f(0x152)),action_1=require(a9_0x48831f(0x186));function a9_0x3232(_0x2b341b,_0x4a0f8a){const _0x495ee0=a9_0x5211();return a9_0x3232=function(_0x477585,_0x4a7915){_0x477585=_0x477585-0x14b;let _0x5211d1=_0x495ee0[_0x477585];return _0x5211d1;},a9_0x3232(_0x2b341b,_0x4a0f8a);}function getRoutes(_0x353a9b={'prefix':'/','module':![]}){const _0x38d35d=a9_0x48831f;var _0x542be7,_0x6103af;const _0x1e21c6=(0x0,core_3[_0x38d35d(0x166)])(action_1[_0x38d35d(0x1ab)]),_0x303eac={},_0xd441f6=Array['isArray'](_0x353a9b[_0x38d35d(0x1a2)]||[])?_0x353a9b['filter']||[]:[_0x353a9b[_0x38d35d(0x1a2)]];_0xe93aac:for(const _0x1700db of _0x1e21c6){let _0x597471=(0x0,core_3[_0x38d35d(0x1a1)])(action_1[_0x38d35d(0x1ab)],_0x1700db),_0x515364=(0x0,core_3[_0x38d35d(0x1a1)])(action_1[_0x38d35d(0x189)],_0x1700db);if(_0x597471&&_0x515364){let _0x4d388a=_0x597471['prefix'],_0x253dad={};if(_0x353a9b[_0x38d35d(0x1a8)]&&(0x0,lodash_1[_0x38d35d(0x150)])(_0x597471,_0x38d35d(0x1a8),![])!=_0x353a9b['module'])continue _0xe93aac;else{if(_0x353a9b[_0x38d35d(0x1a8)]===![]&&!!(0x0,lodash_1[_0x38d35d(0x150)])(_0x597471,_0x38d35d(0x1a8),null))continue _0xe93aac;}if(_0x353a9b['prefix']&&!_0x4d388a[_0x38d35d(0x14c)](_0x353a9b[_0x38d35d(0x188)]))continue _0xe93aac;_0x4d388a!=='/'?(_0x253dad[_0x38d35d(0x197)]=(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x16f)]['tagName'])||(/^\//[_0x38d35d(0x19b)](_0x4d388a)?_0x4d388a[_0x38d35d(0x14d)]('/')[0x1]:_0x4d388a),_0x253dad[_0x38d35d(0x177)]=(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x16f)]['description'])||_0x253dad[_0x38d35d(0x197)],_0x253dad[_0x38d35d(0x195)]=[]):(_0x253dad[_0x38d35d(0x197)]=(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x16f)][_0x38d35d(0x15b)])||_0x38d35d(0x174),_0x253dad[_0x38d35d(0x177)]=(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471['routerOptions'][_0x38d35d(0x177)])||'',_0x253dad[_0x38d35d(0x195)]=[]);_0x353a9b[_0x38d35d(0x17e)]&&(_0x253dad['filepath']=_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x17e)]);(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x17a)])&&(_0x253dad['prefix']=_0x597471[_0x38d35d(0x17a)]);(_0x597471===null||_0x597471===void 0x0?void 0x0:_0x597471[_0x38d35d(0x1a8)])&&(_0x253dad[_0x38d35d(0x1a8)]=_0x597471[_0x38d35d(0x1a8)]);let _0x2bce0c=(0x0,core_3[_0x38d35d(0x1a1)])(core_2['INJECT_CUSTOM_PARAM'],_0x1700db)||{};if(typeof _0x515364[Symbol['iterator']]===_0x38d35d(0x18e))for(let _0x14db3f of _0x515364){if((_0x353a9b===null||_0x353a9b===void 0x0?void 0x0:_0x353a9b['intercept'])&&!(_0x14db3f===null||_0x14db3f===void 0x0?void 0x0:_0x14db3f[_0x38d35d(0x1b5)]))continue;let _0x3516d4={};_0x3516d4[_0x38d35d(0x155)]=_0x14db3f[_0x38d35d(0x199)],_0x3516d4[_0x38d35d(0x187)]=(_0x4d388a+_0x14db3f[_0x38d35d(0x15d)])['replace'](/\/{2,}/g,'/'),_0x3516d4['summary']=(_0x14db3f===null||_0x14db3f===void 0x0?void 0x0:_0x14db3f[_0x38d35d(0x181)])||_0x253dad[_0x38d35d(0x197)]||_0x38d35d(0x174),_0x3516d4[_0x38d35d(0x177)]=(_0x14db3f===null||_0x14db3f===void 0x0?void 0x0:_0x14db3f[_0x38d35d(0x177)])||'',_0x3516d4[_0x38d35d(0x1af)]=[],_0x3516d4[_0x38d35d(0x190)]=getMethodResponse(_0x1700db,_0x14db3f['method']);_0x3516d4[_0x38d35d(0x187)][_0x38d35d(0x164)]('/')&&(_0x3516d4[_0x38d35d(0x187)]=_0x3516d4['route'][_0x38d35d(0x14f)](0x0,_0x3516d4[_0x38d35d(0x187)][_0x38d35d(0x1a7)]-0x1));if(!(0x0,lodash_1[_0x38d35d(0x14c)])(_0x3516d4['route'],_0x38d35d(0x19d))&&!(0x0,lodash_1[_0x38d35d(0x14c)])(_0x3516d4[_0x38d35d(0x187)],_0x38d35d(0x1b1))&&_0xd441f6[_0x38d35d(0x15c)](_0x3516d4['route'])===-0x1){if(!(_0x353a9b===null||_0x353a9b===void 0x0?void 0x0:_0x353a9b['noreq'])){let _0x637dc8=(0x0,core_3[_0x38d35d(0x1a9)])(new _0x1700db(),_0x14db3f[_0x38d35d(0x155)]);for(const _0x41a8e in _0x637dc8){let _0x1b1e80=(_0x542be7=_0x2bce0c[_0x14db3f[_0x38d35d(0x155)]])===null||_0x542be7===void 0x0?void 0x0:_0x542be7[_0x38d35d(0x158)](_0x2f3fed=>_0x2f3fed[_0x38d35d(0x1b2)]==_0x41a8e&&_0x2f3fed[_0x38d35d(0x165)]===core_2[_0x38d35d(0x162)]&&(_0x2f3fed===null||_0x2f3fed===void 0x0?void 0x0:_0x2f3fed[_0x38d35d(0x16e)]));if(_0x1b1e80===null||_0x1b1e80===void 0x0?void 0x0:_0x1b1e80['metadata']){let _0x3dfed6=convertTypeToString(_0x1b1e80[_0x38d35d(0x16e)][_0x38d35d(0x16c)]||0x0);if([_0x38d35d(0x1a3),_0x38d35d(0x17f)]['indexOf'](_0x3dfed6)!=-0x1&&_0x1b1e80['metadata']['propertyData']['indexOf'](':')==-0x1&&!_0x3516d4[_0x38d35d(0x1af)][_0x38d35d(0x158)](_0x5e5f99=>_0x5e5f99[_0x38d35d(0x165)]==_0x1b1e80[_0x38d35d(0x16e)][_0x38d35d(0x1b4)]))_0x3516d4[_0x38d35d(0x1af)][_0x38d35d(0x178)]({'key':_0x1b1e80['metadata'][_0x38d35d(0x1b4)],'title':_0x1b1e80[_0x38d35d(0x16e)]['propertyData'],'type':convertSchemaType(_0x637dc8[_0x1b1e80[_0x38d35d(0x1b2)]][_0x38d35d(0x1ac)]),'required':![],'default':'','desc':''});else{if(_0x3dfed6==_0x38d35d(0x170)){let _0x563580=((_0x6103af=_0x1b1e80===null||_0x1b1e80===void 0x0?void 0x0:_0x1b1e80[_0x38d35d(0x16e)])===null||_0x6103af===void 0x0?void 0x0:_0x6103af[_0x38d35d(0x1b4)])||_0x38d35d(0x170);_0x563580[_0x38d35d(0x15c)](':')==-0x1&&!_0x3516d4[_0x38d35d(0x1af)][_0x38d35d(0x158)](_0x307b48=>_0x307b48[_0x38d35d(0x165)]==_0x563580&&_0x307b48[_0x38d35d(0x16c)]==_0x38d35d(0x170))&&_0x3516d4[_0x38d35d(0x1af)][_0x38d35d(0x178)]({'key':_0x563580,'title':_0x38d35d(0x19c)+_0x563580,'type':_0x38d35d(0x170),'required':!![],'default':'','desc':''});}}}else{const _0x383b7d=(0x0,core_3[_0x38d35d(0x1b0)])(validator_1[_0x38d35d(0x175)],_0x637dc8[_0x41a8e]);_0x383b7d&&_0x3516d4[_0x38d35d(0x1af)]['push'](...getJoiRequest(_0x383b7d));}}}_0x253dad[_0x38d35d(0x195)]['push'](_0x3516d4);}}if(_0x253dad['routes'][_0x38d35d(0x1a7)]>0x0){let _0x2452aa=_0x303eac[_0x4d388a];_0x2452aa?(_0x2452aa[_0x38d35d(0x197)]!=_0x253dad['summary']&&(_0x2452aa[_0x38d35d(0x197)]=_0x2452aa[_0x38d35d(0x197)]+','+_0x253dad[_0x38d35d(0x197)]),_0x2452aa['description']!=_0x253dad[_0x38d35d(0x177)]&&(_0x2452aa['description']=_0x2452aa[_0x38d35d(0x177)]+','+_0x253dad['description']),_0x2452aa[_0x38d35d(0x195)]=_0x2452aa[_0x38d35d(0x195)][_0x38d35d(0x16b)](_0x253dad[_0x38d35d(0x195)]),_0x303eac[_0x4d388a]=_0x2452aa):_0x303eac[_0x4d388a]=_0x253dad;}}}return _0x303eac;}function a9_0x5211(){const _0x522e03=['endsWith','key','listModule','27314010FwyxIU','limit','flags.default','9578368SCGNPZ','concat','type','198jzbzyI','metadata','routerOptions','file','PARAM','@anncic-api/validator','search','default','RULES_KEY','properties','description','push','12209617vjBqWI','pprefix','required','apply','format','filepath','body','constructor','routerName','header','HEADERS','FILESSTREAM','object','../types/action','route','prefix','ACTION_ROUTE_KEY','FIELDS','allow','RouteParamTypes','isArray','function','561940rXQgCG','response','flags.description','args','array','items','routes','flags.label','summary','(((.+)+)+)+$','requestMethod','children','test','文件上传-','static/apitest','number','Boolean','14298VEhiPG','getClassMetadata','filter','query','min','defineProperty','564xjnOKI','length','module','getMethodParamTypes','flags.presence','ACTION_KEY','name','String','errors','request','getClassExtendedMetadata','/static/apitest','parameterIndex','keys','propertyData','intercept','29020vBYPkb','lodash','startsWith','split','boolean','substring','get','Number','@midwayjs/core','9CQlmOL','File','method','string','getRoutes','find','rules','3382422WBuocG','tagName','indexOf','path','join','max','title','Object','WEB_ROUTER_PARAM_KEY','toString'];a9_0x5211=function(){return _0x522e03;};return a9_0x5211();}function getJoiRequest(_0x43813e){const _0x221307=a9_0x48831f;var _0x5ad4af,_0x540b1e;const _0x3aa597=[];for(let _0x3d0b1e in _0x43813e){const _0x290367={'title':'','key':'','type':'','description':'','rules':{},'children':[]},_0x21d6ac=typeof _0x43813e[_0x3d0b1e]['describe']==_0x221307(0x18e)?_0x43813e[_0x3d0b1e]['describe']():_0x43813e[_0x3d0b1e];_0x290367[_0x221307(0x165)]=_0x3d0b1e,_0x290367[_0x221307(0x16c)]=_0x21d6ac['type'],_0x290367['title']=(0x0,lodash_1['get'])(_0x21d6ac,_0x221307(0x196),_0x3d0b1e),_0x290367['default']=(0x0,lodash_1['get'])(_0x21d6ac,_0x221307(0x169),''),_0x290367[_0x221307(0x17b)]=(0x0,lodash_1['get'])(_0x21d6ac,_0x221307(0x1aa),'')==_0x221307(0x17b),_0x290367['description']=(0x0,lodash_1['get'])(_0x21d6ac,_0x221307(0x191),'');if(_0x21d6ac['type']==_0x221307(0x185))(_0x21d6ac===null||_0x21d6ac===void 0x0?void 0x0:_0x21d6ac[_0x221307(0x1b3)])&&(_0x290367[_0x221307(0x19a)]=getJoiRequest(_0x21d6ac['keys']));else _0x21d6ac[_0x221307(0x16c)]==_0x221307(0x193)&&_0x21d6ac[_0x221307(0x194)]&&Array[_0x221307(0x18d)](_0x21d6ac[_0x221307(0x194)])&&(((_0x540b1e=(_0x5ad4af=_0x21d6ac===null||_0x21d6ac===void 0x0?void 0x0:_0x21d6ac[_0x221307(0x194)])===null||_0x5ad4af===void 0x0?void 0x0:_0x5ad4af[0x0])===null||_0x540b1e===void 0x0?void 0x0:_0x540b1e[_0x221307(0x1b3)])&&(_0x290367[_0x221307(0x19a)]=getJoiRequest(_0x21d6ac[_0x221307(0x194)][0x0]['keys'])));_0x21d6ac['allow']&&Array[_0x221307(0x18d)](_0x21d6ac[_0x221307(0x18b)])&&_0x21d6ac[_0x221307(0x18b)][_0x221307(0x1a7)]>0x0&&(_0x290367[_0x221307(0x177)]='只允许:['+_0x21d6ac[_0x221307(0x18b)][_0x221307(0x15e)](',')+'];'+_0x290367[_0x221307(0x177)]);if(_0x290367['key']&&_0x290367[_0x221307(0x16c)]){const _0x598a04={};for(const _0x3bf952 of _0x21d6ac[_0x221307(0x159)]||[]){if(_0x3bf952[_0x221307(0x1ac)]===_0x221307(0x1a4)&&_0x3bf952[_0x221307(0x192)])_0x598a04['min']=_0x3bf952[_0x221307(0x192)][_0x221307(0x168)];else _0x3bf952[_0x221307(0x1ac)]===_0x221307(0x15f)&&(_0x598a04[_0x221307(0x15f)]=_0x3bf952[_0x221307(0x192)][_0x221307(0x168)]);}_0x290367['rules']=_0x598a04;}_0x290367['key']&&_0x290367[_0x221307(0x160)]&&_0x3aa597['push'](_0x290367);}return _0x3aa597;}function convertSchemaType(_0x19dea6){const _0x5e2844=a9_0x48831f;switch(_0x19dea6){case _0x5e2844(0x161):return _0x5e2844(0x185);case _0x5e2844(0x19f):return _0x5e2844(0x14e);case _0x5e2844(0x151):return _0x5e2844(0x19e);case _0x5e2844(0x1ad):return _0x5e2844(0x156);case _0x5e2844(0x154):return'file';default:return _0x5e2844(0x156);}}function convertTypeToString(_0x10a333){const _0x4ca374=a9_0x48831f;switch(_0x10a333){case core_1[_0x4ca374(0x18c)][_0x4ca374(0x183)]:return _0x4ca374(0x182);case core_1[_0x4ca374(0x18c)]['QUERY']:return'query';case core_1[_0x4ca374(0x18c)][_0x4ca374(0x171)]:return _0x4ca374(0x15d);case core_1['RouteParamTypes']['BODY']:return _0x4ca374(0x17f);case core_1[_0x4ca374(0x18c)][_0x4ca374(0x18a)]:case core_1[_0x4ca374(0x18c)][_0x4ca374(0x184)]:case core_1[_0x4ca374(0x18c)]['FILESTREAM']:return _0x4ca374(0x170);default:return _0x4ca374(0x182);}}function getMethodResponse(_0x34ea39,_0x58bde2){const _0x47afe8=a9_0x48831f,_0x2705fe=(0x0,core_3[_0x47afe8(0x1a1)])(action_1['ACTION_RESPONSE_KEY'],_0x34ea39);if(!_0x2705fe)return null;const _0x442b5e=_0x2705fe[_0x47afe8(0x158)](_0x2369b9=>_0x2369b9[_0x47afe8(0x155)]===_0x58bde2);if(!_0x442b5e)return null;return{'format':_0x442b5e[_0x47afe8(0x17d)]||'default','type':_0x442b5e['type'],'description':_0x442b5e[_0x47afe8(0x177)]||'','properties':_0x442b5e[_0x47afe8(0x176)]||[],'errors':_0x442b5e[_0x47afe8(0x1ae)]||[]};}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRoutes = getRoutes;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const validator_1 = require("@anncic-api/validator");
|
|
6
|
+
const core_1 = require("@midwayjs/core");
|
|
7
|
+
const core_2 = require("@midwayjs/core");
|
|
8
|
+
const core_3 = require("@midwayjs/core");
|
|
9
|
+
const action_1 = require("../types/action");
|
|
10
|
+
function getRoutes(filter = { prefix: '/', module: false }) {
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const controllerModules = (0, core_3.listModule)(action_1.ACTION_KEY), routers = {}, filterroute = Array.isArray(filter.filter || []) ? (filter.filter || []) : [filter.filter];
|
|
13
|
+
excludemodule: for (const module of controllerModules) {
|
|
14
|
+
let controllerOption = (0, core_3.getClassMetadata)(action_1.ACTION_KEY, module);
|
|
15
|
+
let controllerRouter = (0, core_3.getClassMetadata)(action_1.ACTION_ROUTE_KEY, module);
|
|
16
|
+
if (controllerOption && controllerRouter) {
|
|
17
|
+
let prefix = controllerOption.prefix, routeparse = {};
|
|
18
|
+
if (filter.module && (0, lodash_1.get)(controllerOption, 'module', false) != filter.module) {
|
|
19
|
+
continue excludemodule;
|
|
20
|
+
}
|
|
21
|
+
else if (filter.module === false && !!(0, lodash_1.get)(controllerOption, 'module', null)) {
|
|
22
|
+
continue excludemodule;
|
|
23
|
+
}
|
|
24
|
+
if (filter.prefix && !prefix.startsWith(filter.prefix)) {
|
|
25
|
+
continue excludemodule;
|
|
26
|
+
}
|
|
27
|
+
if (prefix !== '/') {
|
|
28
|
+
routeparse['summary'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) || (/^\//.test(prefix) ? prefix.split('/')[1] : prefix);
|
|
29
|
+
routeparse['description'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || routeparse['summary'];
|
|
30
|
+
routeparse['routes'] = [];
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
routeparse['summary'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) || 'default';
|
|
34
|
+
routeparse['description'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || '';
|
|
35
|
+
routeparse['routes'] = [];
|
|
36
|
+
}
|
|
37
|
+
if (filter.filepath) {
|
|
38
|
+
routeparse['filepath'] = controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.filepath;
|
|
39
|
+
}
|
|
40
|
+
if (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.pprefix) {
|
|
41
|
+
routeparse['prefix'] = controllerOption.pprefix;
|
|
42
|
+
}
|
|
43
|
+
if (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.module) {
|
|
44
|
+
routeparse['module'] = controllerOption.module;
|
|
45
|
+
}
|
|
46
|
+
let RouterParam = (0, core_3.getClassMetadata)(core_2.INJECT_CUSTOM_PARAM, module) || {};
|
|
47
|
+
if (typeof controllerRouter[Symbol.iterator] === 'function') {
|
|
48
|
+
for (let Router of controllerRouter) {
|
|
49
|
+
if ((filter === null || filter === void 0 ? void 0 : filter.intercept) && !(Router === null || Router === void 0 ? void 0 : Router.intercept)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
let routerparse = {};
|
|
53
|
+
routerparse['method'] = Router.requestMethod;
|
|
54
|
+
routerparse['route'] = (prefix + Router.path).replace(/\/{2,}/g, '/');
|
|
55
|
+
routerparse['summary'] = (Router === null || Router === void 0 ? void 0 : Router.routerName) || routeparse['summary'] || 'default';
|
|
56
|
+
routerparse['description'] = (Router === null || Router === void 0 ? void 0 : Router.description) || '';
|
|
57
|
+
routerparse['request'] = [];
|
|
58
|
+
routerparse['response'] = getMethodResponse(module, Router.method);
|
|
59
|
+
if (routerparse['route'].endsWith('/')) {
|
|
60
|
+
routerparse['route'] = routerparse['route'].substring(0, routerparse['route'].length - 1);
|
|
61
|
+
}
|
|
62
|
+
if (!(0, lodash_1.startsWith)(routerparse['route'], 'static/apitest') && !(0, lodash_1.startsWith)(routerparse['route'], '/static/apitest') && filterroute.indexOf(routerparse['route']) === -1) {
|
|
63
|
+
if (!(filter === null || filter === void 0 ? void 0 : filter.noreq)) {
|
|
64
|
+
let paramTypes = (0, core_3.getMethodParamTypes)(new module, Router.method);
|
|
65
|
+
for (const index in paramTypes) {
|
|
66
|
+
let params = (_a = RouterParam[Router.method]) === null || _a === void 0 ? void 0 : _a.find(item => item.parameterIndex == index && item.key === core_2.WEB_ROUTER_PARAM_KEY && (item === null || item === void 0 ? void 0 : item.metadata));
|
|
67
|
+
if (params === null || params === void 0 ? void 0 : params.metadata) {
|
|
68
|
+
let type = convertTypeToString(params.metadata.type || 0);
|
|
69
|
+
if (['query', 'body'].indexOf(type) != -1 && params.metadata.propertyData.indexOf(':') == -1 && !routerparse.request.find(item => item.key == params.metadata.propertyData)) {
|
|
70
|
+
routerparse.request.push({
|
|
71
|
+
key: params.metadata.propertyData,
|
|
72
|
+
title: params.metadata.propertyData,
|
|
73
|
+
type: convertSchemaType(paramTypes[params.parameterIndex].name),
|
|
74
|
+
required: false,
|
|
75
|
+
default: "",
|
|
76
|
+
desc: ""
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else if (type == 'file') {
|
|
80
|
+
let propertyData = ((_b = params === null || params === void 0 ? void 0 : params.metadata) === null || _b === void 0 ? void 0 : _b.propertyData) || 'file';
|
|
81
|
+
if (propertyData.indexOf(':') == -1 && !routerparse.request.find(item => item.key == propertyData && item.type == 'file')) {
|
|
82
|
+
routerparse.request.push({
|
|
83
|
+
key: propertyData,
|
|
84
|
+
title: `文件上传-${propertyData}`,
|
|
85
|
+
type: 'file',
|
|
86
|
+
required: true,
|
|
87
|
+
default: "",
|
|
88
|
+
desc: ""
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const rule = (0, core_3.getClassExtendedMetadata)(validator_1.RULES_KEY, paramTypes[index]);
|
|
95
|
+
if (rule) {
|
|
96
|
+
routerparse.request.push(...getJoiRequest(rule));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
routeparse.routes.push(routerparse);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (routeparse.routes.length > 0) {
|
|
106
|
+
let _controllerRouters = routers[prefix];
|
|
107
|
+
if (_controllerRouters) {
|
|
108
|
+
if (_controllerRouters['summary'] != routeparse['summary']) {
|
|
109
|
+
_controllerRouters['summary'] = _controllerRouters['summary'] + ',' + routeparse['summary'];
|
|
110
|
+
}
|
|
111
|
+
if (_controllerRouters['description'] != routeparse['description']) {
|
|
112
|
+
_controllerRouters['description'] = _controllerRouters['description'] + ',' + routeparse['description'];
|
|
113
|
+
}
|
|
114
|
+
_controllerRouters['routes'] = _controllerRouters['routes'].concat(routeparse.routes);
|
|
115
|
+
routers[prefix] = _controllerRouters;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
routers[prefix] = routeparse;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return routers;
|
|
124
|
+
}
|
|
125
|
+
function getJoiRequest(schema) {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
const requests = [];
|
|
128
|
+
for (let property in schema) {
|
|
129
|
+
const request = { title: "", key: "", type: "", description: "", rules: {}, children: [] };
|
|
130
|
+
const describe = typeof (schema[property].describe) == 'function' ? schema[property].describe() : schema[property];
|
|
131
|
+
request.key = property;
|
|
132
|
+
request.type = describe.type;
|
|
133
|
+
request.title = (0, lodash_1.get)(describe, 'flags.label', property);
|
|
134
|
+
request.default = (0, lodash_1.get)(describe, 'flags.default', '');
|
|
135
|
+
request.required = (0, lodash_1.get)(describe, 'flags.presence', '') == 'required';
|
|
136
|
+
request.description = (0, lodash_1.get)(describe, 'flags.description', '');
|
|
137
|
+
if (describe.type == 'object') {
|
|
138
|
+
if (describe === null || describe === void 0 ? void 0 : describe.keys) {
|
|
139
|
+
request.children = getJoiRequest(describe.keys);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else if (describe.type == 'array' && describe.items && Array.isArray(describe.items)) {
|
|
143
|
+
if ((_b = (_a = describe === null || describe === void 0 ? void 0 : describe.items) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.keys) {
|
|
144
|
+
request.children = getJoiRequest(describe.items[0].keys);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (describe.allow && Array.isArray(describe.allow) && describe.allow.length > 0) {
|
|
148
|
+
request.description = `只允许:[${describe.allow.join(',')}];${request.description}`;
|
|
149
|
+
}
|
|
150
|
+
if (request.key && request.type) {
|
|
151
|
+
const rules = {};
|
|
152
|
+
for (const r of describe.rules || []) {
|
|
153
|
+
if (r.name === 'min' && r.args) {
|
|
154
|
+
rules.min = r.args.limit;
|
|
155
|
+
}
|
|
156
|
+
else if (r.name === 'max') {
|
|
157
|
+
rules.max = r.args.limit;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
request.rules = rules;
|
|
161
|
+
}
|
|
162
|
+
if (request.key && request.title) {
|
|
163
|
+
requests.push(request);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return requests;
|
|
167
|
+
}
|
|
168
|
+
function convertSchemaType(value) {
|
|
169
|
+
switch (value) {
|
|
170
|
+
case 'Object':
|
|
171
|
+
return 'object';
|
|
172
|
+
case 'Boolean':
|
|
173
|
+
return 'boolean';
|
|
174
|
+
case 'Number':
|
|
175
|
+
return 'number';
|
|
176
|
+
case 'String':
|
|
177
|
+
return 'string';
|
|
178
|
+
case 'File':
|
|
179
|
+
return 'file';
|
|
180
|
+
default:
|
|
181
|
+
return 'string';
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function convertTypeToString(type) {
|
|
185
|
+
switch (type) {
|
|
186
|
+
case core_1.RouteParamTypes.HEADERS:
|
|
187
|
+
return 'header';
|
|
188
|
+
case core_1.RouteParamTypes.QUERY:
|
|
189
|
+
return 'query';
|
|
190
|
+
case core_1.RouteParamTypes.PARAM:
|
|
191
|
+
return 'path';
|
|
192
|
+
case core_1.RouteParamTypes.BODY:
|
|
193
|
+
return 'body';
|
|
194
|
+
case core_1.RouteParamTypes.FIELDS:
|
|
195
|
+
case core_1.RouteParamTypes.FILESSTREAM:
|
|
196
|
+
case core_1.RouteParamTypes.FILESTREAM:
|
|
197
|
+
return 'file';
|
|
198
|
+
default:
|
|
199
|
+
return 'header';
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function getMethodResponse(module, method) {
|
|
203
|
+
const responseMetadata = (0, core_3.getClassMetadata)(action_1.ACTION_RESPONSE_KEY, module);
|
|
204
|
+
if (!responseMetadata) {
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
const methodResponse = responseMetadata.find((item) => item.method === method);
|
|
208
|
+
if (!methodResponse) {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
return {
|
|
212
|
+
format: methodResponse.format || 'default',
|
|
213
|
+
type: methodResponse.type,
|
|
214
|
+
description: methodResponse.description || '',
|
|
215
|
+
properties: methodResponse.properties || [],
|
|
216
|
+
errors: methodResponse.errors || []
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Um91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9nZXRSb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsOEJBaUlDO0FBbEpELG1DQUF5QztBQUN6QyxxREFBaUQ7QUFDakQseUNBQStEO0FBQy9ELHlDQUEyRTtBQUMzRSx5Q0FBNkc7QUFFN0csNENBQXFHO0FBV3JHLFNBQWdCLFNBQVMsQ0FBQyxTQUF5QixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLGlCQUFVLEVBQUMsbUJBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxSixhQUFhLEVBQ2IsS0FBSyxNQUFNLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3JDLElBQUksZ0JBQWdCLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyxtQkFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksZ0JBQWdCLEdBQXVDLElBQUEsdUJBQWdCLEVBQUMseUJBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEcsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxHQUFXLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQVEsRUFBRSxDQUFDO1lBQ25FLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFBLFlBQUcsRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE1B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
|