@midwayjs/swagger 1.3.0 → 3.0.0-beta.9
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/README.md +7 -23
- package/dist/common/enum.utils.d.ts +9 -0
- package/dist/common/enum.utils.js +63 -0
- package/dist/common/httpStatus.d.ts +51 -0
- package/dist/common/httpStatus.js +55 -0
- package/dist/config/config.default.d.ts +2 -8
- package/dist/config/config.default.js +6 -6
- package/dist/configuration.d.ts +4 -2
- package/dist/configuration.js +27 -11
- package/dist/constants.d.ts +15 -0
- package/dist/constants.js +18 -0
- package/dist/decorators/api-basic.decorator.d.ts +2 -0
- package/dist/decorators/api-basic.decorator.js +9 -0
- package/dist/decorators/api-bearer.decorator.d.ts +2 -0
- package/dist/decorators/api-bearer.decorator.js +9 -0
- package/dist/decorators/api-body.decorator.d.ts +16 -0
- package/dist/decorators/api-body.decorator.js +27 -0
- package/dist/decorators/api-cookie.decorator.d.ts +2 -0
- package/dist/decorators/api-cookie.decorator.js +9 -0
- package/dist/decorators/api-exclude-controller.decorator.d.ts +2 -0
- package/dist/decorators/api-exclude-controller.decorator.js +12 -0
- package/dist/decorators/api-exclude-endpoint.decorator.d.ts +2 -0
- package/dist/decorators/api-exclude-endpoint.decorator.js +12 -0
- package/dist/decorators/api-extension.decorator.d.ts +2 -0
- package/dist/decorators/api-extension.decorator.js +16 -0
- package/dist/decorators/api-header.decorator.d.ts +7 -0
- package/dist/decorators/api-header.decorator.js +43 -0
- package/dist/decorators/api-oauth2.decorator.d.ts +2 -0
- package/dist/decorators/api-oauth2.decorator.js +9 -0
- package/dist/decorators/api-operation.decorator.d.ts +4 -0
- package/dist/decorators/api-operation.decorator.js +16 -0
- package/dist/decorators/api-param.decorator.d.ts +15 -0
- package/dist/decorators/api-param.decorator.js +30 -0
- package/dist/decorators/api-property.decorator.d.ts +11 -0
- package/dist/decorators/api-property.decorator.js +56 -0
- package/dist/decorators/api-query.decorator.d.ts +17 -0
- package/dist/decorators/api-query.decorator.js +31 -0
- package/dist/decorators/api-response.decorator.d.ts +41 -0
- package/dist/decorators/api-response.decorator.js +149 -0
- package/dist/decorators/api-security.decorator.d.ts +3 -0
- package/dist/decorators/api-security.decorator.js +17 -0
- package/dist/decorators/api-tags.decorator.d.ts +2 -0
- package/dist/decorators/api-tags.decorator.js +10 -0
- package/dist/decorators/helpers.d.ts +7 -0
- package/dist/decorators/helpers.js +41 -0
- package/dist/decorators/index.d.ts +18 -0
- package/dist/decorators/index.js +35 -0
- package/dist/documentBuilder.d.ts +25 -0
- package/dist/documentBuilder.js +192 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +8 -6
- package/dist/interfaces/index.d.ts +268 -0
- package/dist/interfaces/index.js +7 -0
- package/dist/swaggerExplorer.d.ts +30 -0
- package/dist/swaggerExplorer.js +567 -0
- package/dist/swaggerMiddleware.d.ts +9 -0
- package/dist/swaggerMiddleware.js +123 -0
- package/index.d.ts +8 -0
- package/package.json +13 -12
- package/CHANGELOG.md +0 -121
- package/dist/controller/swagger.d.ts +0 -31
- package/dist/controller/swagger.js +0 -96
- package/dist/interface.d.ts +0 -16
- package/dist/interface.js +0 -3
- package/dist/lib/createAPI.d.ts +0 -52
- package/dist/lib/createAPI.js +0 -276
- package/dist/lib/document.d.ts +0 -117
- package/dist/lib/document.js +0 -131
- package/dist/lib/generator.d.ts +0 -31
- package/dist/lib/generator.js +0 -310
- package/dist/service/generator.d.ts +0 -24
- package/dist/service/generator.js +0 -37
package/dist/lib/generator.js
DELETED
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SwaggerMetaGenerator = void 0;
|
|
4
|
-
const decorator_1 = require("@midwayjs/decorator");
|
|
5
|
-
const document_1 = require("./document");
|
|
6
|
-
const createAPI_1 = require("./createAPI");
|
|
7
|
-
class SwaggerMetaGenerator {
|
|
8
|
-
constructor(options) {
|
|
9
|
-
var _a;
|
|
10
|
-
this.document = new document_1.SwaggerDocument();
|
|
11
|
-
const info = new document_1.SwaggerDocumentInfo();
|
|
12
|
-
info.title = (options === null || options === void 0 ? void 0 : options.title) || 'Midway2 Swagger API';
|
|
13
|
-
info.version = options.version || '1.0.0';
|
|
14
|
-
info.description = options === null || options === void 0 ? void 0 : options.description;
|
|
15
|
-
info.termsOfService = options === null || options === void 0 ? void 0 : options.termsOfService;
|
|
16
|
-
info.contact = options === null || options === void 0 ? void 0 : options.contact;
|
|
17
|
-
info.license = ((_a = options === null || options === void 0 ? void 0 : options.license) === null || _a === void 0 ? void 0 : _a.name) ? options === null || options === void 0 ? void 0 : options.license : undefined;
|
|
18
|
-
this.document.info = info;
|
|
19
|
-
}
|
|
20
|
-
generateController(module) {
|
|
21
|
-
const controllerOption = (0, decorator_1.getClassMetadata)(decorator_1.CONTROLLER_KEY, module);
|
|
22
|
-
const prefix = controllerOption.prefix;
|
|
23
|
-
const tag = new document_1.SwaggerDocumentTag();
|
|
24
|
-
if (prefix !== '/') {
|
|
25
|
-
tag.name =
|
|
26
|
-
(controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) ||
|
|
27
|
-
(/^\//.test(prefix) ? prefix.split('/')[1] : prefix);
|
|
28
|
-
tag.description = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || tag.name;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
tag.name = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) || 'default';
|
|
32
|
-
tag.description = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || tag.name;
|
|
33
|
-
}
|
|
34
|
-
this.document.tags.push(tag);
|
|
35
|
-
// const globalMiddleware = controllerOption.routerOptions.middleware;
|
|
36
|
-
// get router info
|
|
37
|
-
const webRouterInfo = (0, decorator_1.getClassMetadata)(decorator_1.WEB_ROUTER_KEY, module);
|
|
38
|
-
if (webRouterInfo && typeof webRouterInfo[Symbol.iterator] === 'function') {
|
|
39
|
-
for (const webRouter of webRouterInfo) {
|
|
40
|
-
let url = (prefix + webRouter.path).replace('//', '/');
|
|
41
|
-
url = replaceUrl(url, parseParamsInPath(url));
|
|
42
|
-
const router = new document_1.SwaggerDocumentRouter(webRouter.requestMethod, url);
|
|
43
|
-
router.tags = [tag.name];
|
|
44
|
-
this.generateRouter(webRouter, router, module);
|
|
45
|
-
this.document.addRouter(router);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
generate() {
|
|
50
|
-
return this.document.toJSON();
|
|
51
|
-
}
|
|
52
|
-
generateRouter(webRouterInfo, swaggerRouter, module) {
|
|
53
|
-
const ins = new module();
|
|
54
|
-
const swaggerApi = (0, decorator_1.getPropertyMetadata)(createAPI_1.SWAGGER_DOCUMENT_KEY, ins, webRouterInfo.method);
|
|
55
|
-
swaggerRouter.summary =
|
|
56
|
-
(swaggerApi === null || swaggerApi === void 0 ? void 0 : swaggerApi.summary) || webRouterInfo.summary || webRouterInfo.routerName;
|
|
57
|
-
swaggerRouter.description =
|
|
58
|
-
(swaggerApi === null || swaggerApi === void 0 ? void 0 : swaggerApi.description) ||
|
|
59
|
-
webRouterInfo.description ||
|
|
60
|
-
webRouterInfo.routerName;
|
|
61
|
-
// swaggerRouter.operationId = webRouterInfo.method;
|
|
62
|
-
swaggerRouter.parameters = [];
|
|
63
|
-
const routeArgsInfo = (0, decorator_1.getPropertyDataFromClass)(decorator_1.WEB_ROUTER_PARAM_KEY, module, webRouterInfo.method) || [];
|
|
64
|
-
// 获取方法参数类型
|
|
65
|
-
const paramTypes = (0, decorator_1.getMethodParamTypes)(ins, webRouterInfo.method);
|
|
66
|
-
for (const routeArgs of routeArgsInfo) {
|
|
67
|
-
const swaggerParameter = new document_1.SwaggerDocumentParameter();
|
|
68
|
-
const argsApiInfo = swaggerApi === null || swaggerApi === void 0 ? void 0 : swaggerApi.params[routeArgs.index];
|
|
69
|
-
swaggerParameter.description = argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.description;
|
|
70
|
-
swaggerParameter.name = (argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.name) || (routeArgs === null || routeArgs === void 0 ? void 0 : routeArgs.propertyData);
|
|
71
|
-
swaggerParameter.in = convertTypeToString(routeArgs.type);
|
|
72
|
-
swaggerParameter.required = argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.required;
|
|
73
|
-
swaggerParameter.deprecated = argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.deprecated;
|
|
74
|
-
swaggerParameter.allowEmptyValue = argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.allowEmptyValue;
|
|
75
|
-
swaggerParameter.example = argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.example;
|
|
76
|
-
if (swaggerParameter.in === 'path') {
|
|
77
|
-
swaggerParameter.required = true;
|
|
78
|
-
// if path not include this args, must be ignore
|
|
79
|
-
if (swaggerRouter.url.indexOf('{' + swaggerParameter.name + '}') === -1) {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if ((0, decorator_1.isClass)(paramTypes[routeArgs.index])) {
|
|
84
|
-
this.generateSwaggerDefinition(paramTypes[routeArgs.index]);
|
|
85
|
-
swaggerParameter.schema = {
|
|
86
|
-
$ref: '#/components/schemas/' + paramTypes[routeArgs.index].name,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
swaggerParameter.schema = {
|
|
91
|
-
type: convertSchemaType(paramTypes[routeArgs.index].name),
|
|
92
|
-
name: undefined,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
// add body
|
|
96
|
-
if (swaggerParameter.in === 'body') {
|
|
97
|
-
swaggerRouter.requestBody = {
|
|
98
|
-
description: (argsApiInfo === null || argsApiInfo === void 0 ? void 0 : argsApiInfo.description) || (routeArgs === null || routeArgs === void 0 ? void 0 : routeArgs.propertyData),
|
|
99
|
-
content: {
|
|
100
|
-
'application/json': {
|
|
101
|
-
schema: swaggerParameter.schema,
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
// add parameter
|
|
108
|
-
swaggerRouter.parameters.push(swaggerParameter);
|
|
109
|
-
}
|
|
110
|
-
swaggerRouter.responses = {};
|
|
111
|
-
for (const apiResponse of (swaggerApi === null || swaggerApi === void 0 ? void 0 : swaggerApi.response) || []) {
|
|
112
|
-
// 获取方法返回值
|
|
113
|
-
swaggerRouter.responses[apiResponse.status] = {
|
|
114
|
-
description: apiResponse === null || apiResponse === void 0 ? void 0 : apiResponse.description,
|
|
115
|
-
headers: apiResponse === null || apiResponse === void 0 ? void 0 : apiResponse.headers,
|
|
116
|
-
content: apiResponse === null || apiResponse === void 0 ? void 0 : apiResponse.content,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
// 兜底加个 200
|
|
120
|
-
if (Object.keys(swaggerRouter.responses).length === 0) {
|
|
121
|
-
swaggerRouter.responses = { 200: { description: '' } };
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
generateSwaggerDefinition(definitionClass) {
|
|
125
|
-
var _a, _b;
|
|
126
|
-
const swaggerDefinition = new document_1.SwaggerDefinition();
|
|
127
|
-
swaggerDefinition.name = definitionClass.name;
|
|
128
|
-
swaggerDefinition.type = 'object';
|
|
129
|
-
const properties = (0, decorator_1.getClassMetadata)(createAPI_1.SWAGGER_DOCUMENT_KEY, definitionClass);
|
|
130
|
-
for (const propertyName in properties) {
|
|
131
|
-
swaggerDefinition.properties[propertyName] = {
|
|
132
|
-
type: properties[propertyName].type.toLowerCase(),
|
|
133
|
-
description: properties[propertyName].description,
|
|
134
|
-
example: properties[propertyName].example,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
// for rule decorator
|
|
138
|
-
const rules = (0, decorator_1.getClassExtendedMetadata)(decorator_1.RULES_KEY, definitionClass);
|
|
139
|
-
if (rules) {
|
|
140
|
-
const properties = Object.keys(rules);
|
|
141
|
-
for (const property of properties) {
|
|
142
|
-
// set required
|
|
143
|
-
if (((_b = (_a = rules[property]) === null || _a === void 0 ? void 0 : _a._flags) === null || _b === void 0 ? void 0 : _b.presence) === 'required') {
|
|
144
|
-
swaggerDefinition.required.push(property);
|
|
145
|
-
}
|
|
146
|
-
// 没找到这行代码对应的装饰器
|
|
147
|
-
// get property description
|
|
148
|
-
let propertyInfo = (0, decorator_1.getPropertyMetadata)(createAPI_1.SWAGGER_DOCUMENT_KEY, definitionClass, property);
|
|
149
|
-
if (!propertyInfo) {
|
|
150
|
-
propertyInfo = this.generateSwaggerByJoiProperty(rules[property], joinCamel(definitionClass.name, property));
|
|
151
|
-
}
|
|
152
|
-
if (swaggerDefinition.properties[property] && !(propertyInfo === null || propertyInfo === void 0 ? void 0 : propertyInfo.$ref)) {
|
|
153
|
-
mixWhenPropertyEmpty(swaggerDefinition.properties[property], propertyInfo);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
swaggerDefinition.properties[property] = propertyInfo;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
this.document.definitions.push(swaggerDefinition);
|
|
161
|
-
// DTO
|
|
162
|
-
for (const key in properties) {
|
|
163
|
-
// 必须加了属性装饰器
|
|
164
|
-
if (!(rules === null || rules === void 0 ? void 0 : rules[key]) &&
|
|
165
|
-
properties[key].originDesign &&
|
|
166
|
-
!properties[key].isBaseType) {
|
|
167
|
-
this.generateSwaggerDefinition(properties[key].originDesign);
|
|
168
|
-
// 把复杂类型属性指向新的定义
|
|
169
|
-
swaggerDefinition.properties[key] = {};
|
|
170
|
-
swaggerDefinition.properties[key]['$ref'] =
|
|
171
|
-
'#/components/schemas/' + properties[key].type;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
generateSwaggerByJoiProperty(joiSchema, pathName) {
|
|
176
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
177
|
-
const describe = joiSchema.describe();
|
|
178
|
-
if (((_a = describe.flags) === null || _a === void 0 ? void 0 : _a.presence) === 'forbidden') {
|
|
179
|
-
return undefined;
|
|
180
|
-
}
|
|
181
|
-
let define = {
|
|
182
|
-
type: describe.type,
|
|
183
|
-
default: (_b = describe.flags) === null || _b === void 0 ? void 0 : _b.default,
|
|
184
|
-
description: (_c = describe.flags) === null || _c === void 0 ? void 0 : _c.description,
|
|
185
|
-
example: (_d = describe.examples) === null || _d === void 0 ? void 0 : _d.join(' '),
|
|
186
|
-
};
|
|
187
|
-
let min;
|
|
188
|
-
let max;
|
|
189
|
-
for (const r of describe.rules || []) {
|
|
190
|
-
if (r.name === 'min' && r.args) {
|
|
191
|
-
min = r.args.limit;
|
|
192
|
-
}
|
|
193
|
-
else if (r.name === 'max') {
|
|
194
|
-
max = r.args.limit;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if ((_e = describe.flags) === null || _e === void 0 ? void 0 : _e.only) {
|
|
198
|
-
define.enum = describe.allow;
|
|
199
|
-
}
|
|
200
|
-
if (describe.invalid) {
|
|
201
|
-
define.not = { enum: describe.invalid };
|
|
202
|
-
}
|
|
203
|
-
switch (describe.type) {
|
|
204
|
-
case 'string':
|
|
205
|
-
define.minLength = min;
|
|
206
|
-
define.maxLength = max;
|
|
207
|
-
break;
|
|
208
|
-
case 'number':
|
|
209
|
-
define.minimum = min;
|
|
210
|
-
define.maximum = max;
|
|
211
|
-
if ((_f = describe.rules) === null || _f === void 0 ? void 0 : _f.some(r => r.name === 'integer')) {
|
|
212
|
-
define.type = 'integer';
|
|
213
|
-
}
|
|
214
|
-
break;
|
|
215
|
-
case 'date':
|
|
216
|
-
define.type = 'string';
|
|
217
|
-
define.format = 'date-time';
|
|
218
|
-
break;
|
|
219
|
-
case 'object': {
|
|
220
|
-
const swaggerDefinition = new document_1.SwaggerDefinition();
|
|
221
|
-
const schemaMeta = (_g = describe.metas) === null || _g === void 0 ? void 0 : _g.find(m => Boolean(m.id));
|
|
222
|
-
swaggerDefinition.name = (schemaMeta === null || schemaMeta === void 0 ? void 0 : schemaMeta.id) || pathName;
|
|
223
|
-
swaggerDefinition.type = 'object';
|
|
224
|
-
swaggerDefinition.required = [];
|
|
225
|
-
for (const prop of (_h = joiSchema.$_terms) === null || _h === void 0 ? void 0 : _h.keys) {
|
|
226
|
-
if (((_j = prop.schema._flags) === null || _j === void 0 ? void 0 : _j.presence) === 'required') {
|
|
227
|
-
swaggerDefinition.required.push(prop.key);
|
|
228
|
-
}
|
|
229
|
-
swaggerDefinition.properties[prop.key] =
|
|
230
|
-
this.generateSwaggerByJoiProperty(prop.schema, joinCamel(pathName, prop.key));
|
|
231
|
-
}
|
|
232
|
-
this.document.definitions.push(swaggerDefinition);
|
|
233
|
-
define = { $ref: '#/components/schemas/' + swaggerDefinition.name };
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
case 'array':
|
|
237
|
-
define.minItems = min;
|
|
238
|
-
define.maxItems = max;
|
|
239
|
-
if (joiSchema.$_terms.items[0]) {
|
|
240
|
-
define.items = this.generateSwaggerByJoiProperty(joiSchema.$_terms.items[0], pathName);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
return define;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
exports.SwaggerMetaGenerator = SwaggerMetaGenerator;
|
|
247
|
-
function joinCamel(word1, word2) {
|
|
248
|
-
return `${word1}${word2[0].toUpperCase()}${word2.slice(1)}`;
|
|
249
|
-
}
|
|
250
|
-
function convertTypeToString(type) {
|
|
251
|
-
switch (type) {
|
|
252
|
-
case decorator_1.RouteParamTypes.HEADERS:
|
|
253
|
-
return 'header';
|
|
254
|
-
case decorator_1.RouteParamTypes.QUERY:
|
|
255
|
-
return 'query';
|
|
256
|
-
case decorator_1.RouteParamTypes.PARAM:
|
|
257
|
-
return 'path';
|
|
258
|
-
case decorator_1.RouteParamTypes.BODY:
|
|
259
|
-
return 'body';
|
|
260
|
-
default:
|
|
261
|
-
return 'header';
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* 解释路由上的参数
|
|
266
|
-
* @param url
|
|
267
|
-
*/
|
|
268
|
-
function parseParamsInPath(url) {
|
|
269
|
-
const names = [];
|
|
270
|
-
url.split('/').forEach(item => {
|
|
271
|
-
if (item.startsWith(':')) {
|
|
272
|
-
const paramName = item.substr(1);
|
|
273
|
-
names.push(paramName);
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
return names;
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* 替换成 openapi 的url
|
|
280
|
-
* @param url
|
|
281
|
-
* @param names
|
|
282
|
-
*/
|
|
283
|
-
function replaceUrl(url, names) {
|
|
284
|
-
names.forEach(n => {
|
|
285
|
-
url = url.replace(`:${n}`, `{${n}}`);
|
|
286
|
-
});
|
|
287
|
-
return url;
|
|
288
|
-
}
|
|
289
|
-
function convertSchemaType(value) {
|
|
290
|
-
switch (value) {
|
|
291
|
-
case 'Object':
|
|
292
|
-
return 'object';
|
|
293
|
-
case 'Boolean':
|
|
294
|
-
return 'boolean';
|
|
295
|
-
case 'Number':
|
|
296
|
-
return 'number';
|
|
297
|
-
case 'String':
|
|
298
|
-
return 'string';
|
|
299
|
-
default:
|
|
300
|
-
return 'object';
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
function mixWhenPropertyEmpty(target, source) {
|
|
304
|
-
for (const key in source) {
|
|
305
|
-
if (!target[key] && source[key]) {
|
|
306
|
-
target[key] = source[key];
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
//# sourceMappingURL=generator.js.map
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { SwaggerGeneratorInfoOptions } from '../interface';
|
|
2
|
-
export declare class SwaggerGenerator {
|
|
3
|
-
swaggerConfig: SwaggerGeneratorInfoOptions;
|
|
4
|
-
generate(): {
|
|
5
|
-
openapi: string;
|
|
6
|
-
info: {
|
|
7
|
-
description: string;
|
|
8
|
-
version: string;
|
|
9
|
-
title: string;
|
|
10
|
-
termsOfService: any;
|
|
11
|
-
contact: any;
|
|
12
|
-
license: any;
|
|
13
|
-
};
|
|
14
|
-
host: string;
|
|
15
|
-
basePath: string;
|
|
16
|
-
tags: any;
|
|
17
|
-
schemas: string[];
|
|
18
|
-
paths: {};
|
|
19
|
-
components: {
|
|
20
|
-
schemas: {};
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.SwaggerGenerator = void 0;
|
|
13
|
-
const decorator_1 = require("@midwayjs/decorator");
|
|
14
|
-
const generator_1 = require("../lib/generator");
|
|
15
|
-
const swagger_1 = require("../controller/swagger");
|
|
16
|
-
let SwaggerGenerator = class SwaggerGenerator {
|
|
17
|
-
generate() {
|
|
18
|
-
const controllerModules = (0, decorator_1.listModule)(decorator_1.CONTROLLER_KEY);
|
|
19
|
-
const generator = new generator_1.SwaggerMetaGenerator(this.swaggerConfig);
|
|
20
|
-
for (const module of controllerModules) {
|
|
21
|
-
if (module !== swagger_1.SwaggerController) {
|
|
22
|
-
generator.generateController(module);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return generator.generate();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
__decorate([
|
|
29
|
-
(0, decorator_1.Config)('swagger'),
|
|
30
|
-
__metadata("design:type", Object)
|
|
31
|
-
], SwaggerGenerator.prototype, "swaggerConfig", void 0);
|
|
32
|
-
SwaggerGenerator = __decorate([
|
|
33
|
-
(0, decorator_1.Provide)('swaggerGenerator'),
|
|
34
|
-
(0, decorator_1.Scope)(decorator_1.ScopeEnum.Singleton)
|
|
35
|
-
], SwaggerGenerator);
|
|
36
|
-
exports.SwaggerGenerator = SwaggerGenerator;
|
|
37
|
-
//# sourceMappingURL=generator.js.map
|