@com75271-assist/build-api 1.0.0
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/api.json +2366 -0
- package/dist/api.md +184 -0
- package/dist/index.d.ts +1354 -0
- package/dist/index.js +100 -0
- package/dist/templates/ts.enumModel.njk +21 -0
- package/dist/templates/ts.model.njk +12 -0
- package/dist/templates/ts.service.njk +43 -0
- package/package.json +36 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1354 @@
|
|
|
1
|
+
declare interface ApiDoc {
|
|
2
|
+
basePath: string;
|
|
3
|
+
definitions: Data<Model>;
|
|
4
|
+
info: ApiInfo;
|
|
5
|
+
paths: ApiPath;
|
|
6
|
+
swagger: string;
|
|
7
|
+
tags: ApiTag[];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare interface ApiInfo {
|
|
11
|
+
description: string;
|
|
12
|
+
title: string;
|
|
13
|
+
version: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare interface ApiOperation {
|
|
17
|
+
operationId: string;
|
|
18
|
+
parameters?: Parameter[];
|
|
19
|
+
produces: string[];
|
|
20
|
+
responses: Data<Response_2>;
|
|
21
|
+
summary: string;
|
|
22
|
+
tags: string[];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare interface ApiOperationResolveApiName {
|
|
26
|
+
map?: CountMap_2;
|
|
27
|
+
countName?: (name: string) => string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare interface ApiOperationWrapper {
|
|
31
|
+
serviceName: string;
|
|
32
|
+
operationName: string;
|
|
33
|
+
package: string;
|
|
34
|
+
url: string;
|
|
35
|
+
method: string;
|
|
36
|
+
apiOperation: ApiOperation;
|
|
37
|
+
responseTypeResolver?: (apiOperation: ApiOperation) => string;
|
|
38
|
+
modelPoolMap: Map<string, TsModel>;
|
|
39
|
+
paramPackageName?: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare interface ApiPath {
|
|
43
|
+
[prop: string]: Data<ApiOperation>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare interface ApiTag {
|
|
47
|
+
name: string;
|
|
48
|
+
description: string;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
declare interface Builder {
|
|
52
|
+
/**
|
|
53
|
+
* 生成
|
|
54
|
+
*/
|
|
55
|
+
build(): void;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 根据swagger2定义生成javascript接口文档
|
|
60
|
+
* @param config
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildSwagger2Js(config: NjkJsSwagger2BuilderConfig): void;
|
|
63
|
+
|
|
64
|
+
export declare const buildSwagger2Ts: typeof buildSwaggerTs;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 根据swagger3定义生成typescript接口文档
|
|
68
|
+
* @param config
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildSwagger3Ts(config: NjkTsSwagger3BuilderConfig): void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 根据swagger2定义生成typescript接口文档
|
|
74
|
+
* @param config
|
|
75
|
+
*/
|
|
76
|
+
export declare function buildSwaggerTs(config: NjkTsSwagger2BuilderConfig): void;
|
|
77
|
+
|
|
78
|
+
declare class CountMap {
|
|
79
|
+
private map;
|
|
80
|
+
count(name: string): number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare class CountMap_2 {
|
|
84
|
+
private map = new Map<string, number>()
|
|
85
|
+
|
|
86
|
+
public count(name: string) {
|
|
87
|
+
const count = (this.map.get(name) || 0) + 1
|
|
88
|
+
this.map.set(name, count)
|
|
89
|
+
return count
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
declare interface Data<T> {
|
|
94
|
+
[prop: string]: T;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
declare interface EnumItem {
|
|
98
|
+
name: string;
|
|
99
|
+
label: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
declare interface EnumModelProperty extends SampleModelProperty {
|
|
103
|
+
type: 'string';
|
|
104
|
+
enum: string[];
|
|
105
|
+
enumList: EnumItem[];
|
|
106
|
+
enumSimpleTypeName: string;
|
|
107
|
+
enumTypeName: string;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
declare interface EnumModelPropertyWrapper extends ModelPropertyWrapper {
|
|
111
|
+
package: string;
|
|
112
|
+
modelProperty: EnumModelProperty;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
declare interface Model {
|
|
116
|
+
required?: string[];
|
|
117
|
+
title: string;
|
|
118
|
+
type: string;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
declare interface ModelProperty {
|
|
122
|
+
allowEmptyValue?: boolean;
|
|
123
|
+
description?: string;
|
|
124
|
+
example?: unknown;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare interface ModelPropertyWrapper {
|
|
128
|
+
name: string;
|
|
129
|
+
modelProperty: ModelProperty;
|
|
130
|
+
model: Model | null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
declare interface ModelWrapper {
|
|
134
|
+
package: string;
|
|
135
|
+
name: string;
|
|
136
|
+
model: Model;
|
|
137
|
+
modelPackageName?: string;
|
|
138
|
+
enumPackageName?: string;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export declare enum NameStyle {
|
|
142
|
+
/**
|
|
143
|
+
* 小驼峰
|
|
144
|
+
*/
|
|
145
|
+
CAMEL_CASE = 0,
|
|
146
|
+
/**
|
|
147
|
+
* 大驼峰
|
|
148
|
+
*/
|
|
149
|
+
UPPER_CAMEL_CASE = 1,
|
|
150
|
+
/**
|
|
151
|
+
* 帕斯卡命名,等于大驼峰
|
|
152
|
+
*/
|
|
153
|
+
PASCAL = 2,
|
|
154
|
+
/**
|
|
155
|
+
* 下划线
|
|
156
|
+
*/
|
|
157
|
+
UNDER_SCORE_CASE = 3,
|
|
158
|
+
/**
|
|
159
|
+
* 短横线
|
|
160
|
+
*/
|
|
161
|
+
KEBAB_CASE = 4
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
declare interface NjkApi {
|
|
165
|
+
/**
|
|
166
|
+
* 依赖,import xx from xx
|
|
167
|
+
*/
|
|
168
|
+
dependencies: NjkDependency[];
|
|
169
|
+
/**
|
|
170
|
+
* 名称
|
|
171
|
+
*/
|
|
172
|
+
name: string;
|
|
173
|
+
/**
|
|
174
|
+
* 描述
|
|
175
|
+
*/
|
|
176
|
+
description: string;
|
|
177
|
+
/**
|
|
178
|
+
* api地址
|
|
179
|
+
*/
|
|
180
|
+
url: string;
|
|
181
|
+
/**
|
|
182
|
+
* api method
|
|
183
|
+
*/
|
|
184
|
+
method: string;
|
|
185
|
+
/**
|
|
186
|
+
* 响应类型
|
|
187
|
+
*/
|
|
188
|
+
responseType: string;
|
|
189
|
+
/**
|
|
190
|
+
* 参数
|
|
191
|
+
*/
|
|
192
|
+
parameter?: NjkApiParameter;
|
|
193
|
+
/**
|
|
194
|
+
* 响应
|
|
195
|
+
*/
|
|
196
|
+
response: NjkApiResponse;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
declare interface NjkApiParameter {
|
|
200
|
+
/**
|
|
201
|
+
* 名称
|
|
202
|
+
*/
|
|
203
|
+
name: string;
|
|
204
|
+
/**
|
|
205
|
+
* 参数防止位置
|
|
206
|
+
*/
|
|
207
|
+
parameterInBody?: boolean;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
declare interface NjkApiResponse {
|
|
211
|
+
/**
|
|
212
|
+
* 名称
|
|
213
|
+
*/
|
|
214
|
+
name: string;
|
|
215
|
+
/**
|
|
216
|
+
* 泛型名称
|
|
217
|
+
*/
|
|
218
|
+
genericityName?: string;
|
|
219
|
+
/**
|
|
220
|
+
* 是否数组
|
|
221
|
+
*/
|
|
222
|
+
isArray?: boolean;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
declare abstract class NjkBuilder implements Builder {
|
|
226
|
+
protected njkBuilderConfig: NjkBuilderConfig;
|
|
227
|
+
protected template: NjkTemplate;
|
|
228
|
+
/**
|
|
229
|
+
* 需要生成的 Models
|
|
230
|
+
* @protected
|
|
231
|
+
*/
|
|
232
|
+
protected models: NjkModel[];
|
|
233
|
+
/**
|
|
234
|
+
* 需要生成的 EnumModels
|
|
235
|
+
* @protected
|
|
236
|
+
*/
|
|
237
|
+
protected enumModels: NjkEnumModel[];
|
|
238
|
+
/**
|
|
239
|
+
* 需要生成的 Services
|
|
240
|
+
* @protected
|
|
241
|
+
*/
|
|
242
|
+
protected services: NjkService[];
|
|
243
|
+
constructor(njkBuilderConfig: NjkBuilderConfig, template: NjkTemplate);
|
|
244
|
+
/**
|
|
245
|
+
* 执行生成器
|
|
246
|
+
*/
|
|
247
|
+
build(): void;
|
|
248
|
+
/**
|
|
249
|
+
* 删除输出目录
|
|
250
|
+
* @protected
|
|
251
|
+
*/
|
|
252
|
+
removeOutputDir(): void;
|
|
253
|
+
/**
|
|
254
|
+
* 创建模版
|
|
255
|
+
* @protected
|
|
256
|
+
*/
|
|
257
|
+
buildTemplate(): Promise<void>;
|
|
258
|
+
/**
|
|
259
|
+
* 重置models
|
|
260
|
+
* @param models
|
|
261
|
+
* @protected
|
|
262
|
+
*/
|
|
263
|
+
protected setModels(models: NjkModel[]): void;
|
|
264
|
+
/**
|
|
265
|
+
* 重置enumModels
|
|
266
|
+
* @param enumModels
|
|
267
|
+
* @protected
|
|
268
|
+
*/
|
|
269
|
+
protected setEnumModels(enumModels: NjkEnumModel[]): void;
|
|
270
|
+
/**
|
|
271
|
+
* 重置services
|
|
272
|
+
* @param services
|
|
273
|
+
* @protected
|
|
274
|
+
*/
|
|
275
|
+
protected setServices(services: NjkService[]): void;
|
|
276
|
+
/**
|
|
277
|
+
* 创建model模版
|
|
278
|
+
* @param models
|
|
279
|
+
* @protected
|
|
280
|
+
*/
|
|
281
|
+
protected buildModelTemplate(models: NjkModel[]): Promise<void>;
|
|
282
|
+
/**
|
|
283
|
+
* 创建enumModel模版
|
|
284
|
+
* @param enumModels
|
|
285
|
+
* @protected
|
|
286
|
+
*/
|
|
287
|
+
protected buildEnumModelTemplate(enumModels: NjkEnumModel[]): Promise<void>;
|
|
288
|
+
/**
|
|
289
|
+
* 创建service模版
|
|
290
|
+
* @param services
|
|
291
|
+
* @protected
|
|
292
|
+
*/
|
|
293
|
+
protected buildServiceTemplate(services: NjkService[]): Promise<void>;
|
|
294
|
+
/**
|
|
295
|
+
* models去重
|
|
296
|
+
* @param models
|
|
297
|
+
* @protected
|
|
298
|
+
*/
|
|
299
|
+
protected distinctModels<T extends NjkModel>(models: T[]): T[];
|
|
300
|
+
/**
|
|
301
|
+
* 处理文件名,子类可复写该方法实现文件扩展名
|
|
302
|
+
* @param packagePath
|
|
303
|
+
* @param name
|
|
304
|
+
* @protected
|
|
305
|
+
*/
|
|
306
|
+
protected resolveFileName(packagePath: string, name: string): string;
|
|
307
|
+
/**
|
|
308
|
+
* 处理文件后缀名,方便子类复写
|
|
309
|
+
* @param name
|
|
310
|
+
* @protected
|
|
311
|
+
*/
|
|
312
|
+
protected resolveFileNameExt(name: string): string;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
declare interface NjkBuilderConfig {
|
|
316
|
+
/**
|
|
317
|
+
* Service集合
|
|
318
|
+
*/
|
|
319
|
+
services?: NjkService[];
|
|
320
|
+
/**
|
|
321
|
+
* Model集合
|
|
322
|
+
*/
|
|
323
|
+
models?: NjkModel[];
|
|
324
|
+
/**
|
|
325
|
+
* EnumModel集合
|
|
326
|
+
*/
|
|
327
|
+
enumModels?: NjkEnumModel[];
|
|
328
|
+
/**
|
|
329
|
+
* 输出目录
|
|
330
|
+
*/
|
|
331
|
+
outputDir: string;
|
|
332
|
+
/**
|
|
333
|
+
* 文件命名风格
|
|
334
|
+
*/
|
|
335
|
+
fileNameStyle?: NameStyle;
|
|
336
|
+
/**
|
|
337
|
+
* 包名命名风格
|
|
338
|
+
*/
|
|
339
|
+
packageNameStyle?: NameStyle;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
declare interface NjkDependency {
|
|
343
|
+
/**
|
|
344
|
+
* 依赖的 Model
|
|
345
|
+
*/
|
|
346
|
+
model: NjkModel;
|
|
347
|
+
/**
|
|
348
|
+
* package引用路径
|
|
349
|
+
*/
|
|
350
|
+
package: string;
|
|
351
|
+
/**
|
|
352
|
+
* model的别名
|
|
353
|
+
*/
|
|
354
|
+
aliasName?: string;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
declare interface NjkEnumItem {
|
|
358
|
+
/**
|
|
359
|
+
* 名称
|
|
360
|
+
*/
|
|
361
|
+
name: string;
|
|
362
|
+
/**
|
|
363
|
+
* 值
|
|
364
|
+
*/
|
|
365
|
+
value: string;
|
|
366
|
+
/**
|
|
367
|
+
* 描述
|
|
368
|
+
*/
|
|
369
|
+
description: string;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
declare interface NjkEnumModel extends NjkModel {
|
|
373
|
+
/**
|
|
374
|
+
* 枚举数据
|
|
375
|
+
*/
|
|
376
|
+
enumItems: NjkEnumItem[];
|
|
377
|
+
/**
|
|
378
|
+
* 描述
|
|
379
|
+
*/
|
|
380
|
+
description: string;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
export declare class NjkJsSwagger2Builder extends NjkTsSwagger2Builder {
|
|
384
|
+
protected config: NjkJsSwagger2BuilderConfig;
|
|
385
|
+
constructor(config: NjkJsSwagger2BuilderConfig);
|
|
386
|
+
protected resolveFileNameExt(name: string): string;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
declare interface NjkJsSwagger2BuilderConfig extends NjkTsSwagger2BuilderConfig {
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
declare interface NjkModel {
|
|
393
|
+
/**
|
|
394
|
+
* 包名
|
|
395
|
+
*/
|
|
396
|
+
package: string;
|
|
397
|
+
/**
|
|
398
|
+
* 类名
|
|
399
|
+
*/
|
|
400
|
+
name: string;
|
|
401
|
+
/**
|
|
402
|
+
* 文件名,默认等于name
|
|
403
|
+
*/
|
|
404
|
+
fileName?: string;
|
|
405
|
+
/**
|
|
406
|
+
* 依赖,import xx from xx
|
|
407
|
+
*/
|
|
408
|
+
dependencies: NjkDependency[];
|
|
409
|
+
/**
|
|
410
|
+
* 属性
|
|
411
|
+
*/
|
|
412
|
+
properties: NjkModelProperty[];
|
|
413
|
+
/**
|
|
414
|
+
* 继承父类名称
|
|
415
|
+
*/
|
|
416
|
+
parentName?: string;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
declare interface NjkModelProperty {
|
|
420
|
+
/**
|
|
421
|
+
* 属性名
|
|
422
|
+
*/
|
|
423
|
+
name: string;
|
|
424
|
+
/**
|
|
425
|
+
* 是否必须
|
|
426
|
+
*/
|
|
427
|
+
required: boolean;
|
|
428
|
+
/**
|
|
429
|
+
* 类型名称
|
|
430
|
+
*/
|
|
431
|
+
typeName: string;
|
|
432
|
+
/**
|
|
433
|
+
* 是否为数组
|
|
434
|
+
*/
|
|
435
|
+
isArray: boolean;
|
|
436
|
+
/**
|
|
437
|
+
* 是否为引用类型
|
|
438
|
+
*/
|
|
439
|
+
isRef: boolean;
|
|
440
|
+
/**
|
|
441
|
+
* 描述
|
|
442
|
+
*/
|
|
443
|
+
description: string;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
declare interface NjkService {
|
|
447
|
+
/**
|
|
448
|
+
* 包名
|
|
449
|
+
*/
|
|
450
|
+
package: string;
|
|
451
|
+
/**
|
|
452
|
+
* 类名
|
|
453
|
+
*/
|
|
454
|
+
name: string;
|
|
455
|
+
/**
|
|
456
|
+
* 文件名,默认等于name
|
|
457
|
+
*/
|
|
458
|
+
fileName?: string;
|
|
459
|
+
/**
|
|
460
|
+
* 依赖,import xx from xx
|
|
461
|
+
*/
|
|
462
|
+
dependencies: NjkDependency[];
|
|
463
|
+
/**
|
|
464
|
+
* api
|
|
465
|
+
*/
|
|
466
|
+
apis: NjkApi[];
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
declare class NjkTemplate {
|
|
470
|
+
protected config: NjkTemplateConfig;
|
|
471
|
+
/**
|
|
472
|
+
* Model 的模版内容
|
|
473
|
+
*
|
|
474
|
+
* @protected
|
|
475
|
+
*
|
|
476
|
+
* @memberOf NjkTemplate
|
|
477
|
+
*/
|
|
478
|
+
protected modelTemplateContent: string;
|
|
479
|
+
/**
|
|
480
|
+
* EnumModel 的模版内容
|
|
481
|
+
*
|
|
482
|
+
* @protected
|
|
483
|
+
*
|
|
484
|
+
* @memberOf NjkTemplate
|
|
485
|
+
*/
|
|
486
|
+
protected enumModelTemplateContent: string;
|
|
487
|
+
/**
|
|
488
|
+
* Service 的模版内容
|
|
489
|
+
*
|
|
490
|
+
* @protected
|
|
491
|
+
*
|
|
492
|
+
* @memberOf NjkTemplate
|
|
493
|
+
*/
|
|
494
|
+
protected serviceTemplateContent: string;
|
|
495
|
+
constructor(config: NjkTemplateConfig);
|
|
496
|
+
/**
|
|
497
|
+
* 创建 Model 模版
|
|
498
|
+
*
|
|
499
|
+
* @param {object} context
|
|
500
|
+
* @param {string} newFileAbsPath
|
|
501
|
+
*
|
|
502
|
+
* @memberOf NjkTemplate
|
|
503
|
+
*/
|
|
504
|
+
createModel(context: object, newFileAbsPath: string): Promise<void>;
|
|
505
|
+
/**
|
|
506
|
+
* 创建 EnumModel 模版
|
|
507
|
+
*
|
|
508
|
+
* @param {object} context
|
|
509
|
+
* @param {string} newFileAbsPath
|
|
510
|
+
*
|
|
511
|
+
* @memberOf NjkTemplate
|
|
512
|
+
*/
|
|
513
|
+
createEnumModel(context: object, newFileAbsPath: string): Promise<void>;
|
|
514
|
+
/**
|
|
515
|
+
* 创建 Service 模版
|
|
516
|
+
*
|
|
517
|
+
* @param {object} context
|
|
518
|
+
* @param {string} newFileAbsPath
|
|
519
|
+
*
|
|
520
|
+
* @memberOf NjkTemplate
|
|
521
|
+
*/
|
|
522
|
+
createService(context: object, newFileAbsPath: string): Promise<void>;
|
|
523
|
+
/**
|
|
524
|
+
* 创建模版
|
|
525
|
+
*
|
|
526
|
+
* @param {string} templateContent
|
|
527
|
+
* @param {object} context
|
|
528
|
+
* @param {string} newFileAbsPath
|
|
529
|
+
*
|
|
530
|
+
* @memberOf NjkTemplate
|
|
531
|
+
*/
|
|
532
|
+
createTemplate(templateContent: string, context: object, newFileAbsPath: string): Promise<void>;
|
|
533
|
+
/**
|
|
534
|
+
* 模版上下文
|
|
535
|
+
*
|
|
536
|
+
* @protected
|
|
537
|
+
* @param {object} context
|
|
538
|
+
* @returns
|
|
539
|
+
*
|
|
540
|
+
* @memberOf NjkTemplate
|
|
541
|
+
*/
|
|
542
|
+
protected getContext(context: object): {
|
|
543
|
+
utils: {
|
|
544
|
+
upperUnderline: (value: string) => string;
|
|
545
|
+
injectUrl: (url: string, data: object) => string;
|
|
546
|
+
feedLine: (str: string, replacer: string, len: number) => string;
|
|
547
|
+
feedEnumModel: (str: string, replacer: string) => string;
|
|
548
|
+
};
|
|
549
|
+
} & object;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
declare interface NjkTemplateConfig {
|
|
553
|
+
/**
|
|
554
|
+
* model模版
|
|
555
|
+
*/
|
|
556
|
+
modelTemplate?: string;
|
|
557
|
+
/**
|
|
558
|
+
* 枚举模版
|
|
559
|
+
*/
|
|
560
|
+
enumModelTemplate?: string;
|
|
561
|
+
/**
|
|
562
|
+
* service模版
|
|
563
|
+
*/
|
|
564
|
+
serviceTemplate?: string;
|
|
565
|
+
/**
|
|
566
|
+
* model context
|
|
567
|
+
*/
|
|
568
|
+
modelContext?: Data<string>;
|
|
569
|
+
/**
|
|
570
|
+
* enumModel context
|
|
571
|
+
*/
|
|
572
|
+
enumModelContext?: Data<string>;
|
|
573
|
+
/**
|
|
574
|
+
* service context
|
|
575
|
+
*/
|
|
576
|
+
serviceContext?: Data<string>;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
declare class NjkTsBuilder extends NjkBuilder {
|
|
580
|
+
static readonly defaultConfig: NjkTsBuilderConfig;
|
|
581
|
+
constructor(config: NjkTsBuilderConfig);
|
|
582
|
+
/**
|
|
583
|
+
* 合并service中的api
|
|
584
|
+
* @param services
|
|
585
|
+
* @protected
|
|
586
|
+
*/
|
|
587
|
+
protected mergeServiceApis(services: TsService[]): TsService[];
|
|
588
|
+
/**
|
|
589
|
+
* 重整models的依赖关系
|
|
590
|
+
* @param models
|
|
591
|
+
* @param modelPoolMap
|
|
592
|
+
* @protected
|
|
593
|
+
*/
|
|
594
|
+
protected reformModelDependencies(models: TsModel[], modelPoolMap: Map<string, TsModel>): TsModel[];
|
|
595
|
+
/**
|
|
596
|
+
* 返回ts后缀名
|
|
597
|
+
* @param name
|
|
598
|
+
* @protected
|
|
599
|
+
*/
|
|
600
|
+
protected resolveFileNameExt(name: string): string;
|
|
601
|
+
/**
|
|
602
|
+
* 根据命名风格处理文件和导入路径
|
|
603
|
+
* @param options
|
|
604
|
+
* @protected
|
|
605
|
+
*/
|
|
606
|
+
protected resolveNameStyle(options: {
|
|
607
|
+
models: TsModel[];
|
|
608
|
+
enumModels: TsEnumModel[];
|
|
609
|
+
services: TsService[];
|
|
610
|
+
}): void;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
declare interface NjkTsBuilderConfig {
|
|
614
|
+
template?: NjkTemplateConfig;
|
|
615
|
+
builder: NjkBuilderConfig;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
export declare class NjkTsSwagger2Builder extends NjkTsBuilder {
|
|
619
|
+
protected config: NjkTsSwagger2BuilderConfig;
|
|
620
|
+
protected modelTranslator: Swagger2ModelTranslator;
|
|
621
|
+
protected enumModelTranslator: Swagger2EnumModelTranslator;
|
|
622
|
+
protected modelPropertyTranslator: Swagger2ModelPropertyTranslator;
|
|
623
|
+
protected parameterTranslator: Swagger2ParameterTranslator;
|
|
624
|
+
protected responseTranslator: Swagger2ResponseTranslator;
|
|
625
|
+
protected apiOperationTranslator: Swagger2ApiOperationTranslator;
|
|
626
|
+
protected genericityDependenciesTranslator: TsGenericityDependenciesTranslator;
|
|
627
|
+
protected swaggerService: SwaggerService;
|
|
628
|
+
protected packageDepth: number;
|
|
629
|
+
protected defaultSwaggerResourcePath: string;
|
|
630
|
+
protected defaultSwaggerDocumentPath: string;
|
|
631
|
+
constructor(config: NjkTsSwagger2BuilderConfig);
|
|
632
|
+
build(): void;
|
|
633
|
+
/**
|
|
634
|
+
* 构建Swagger2生成器
|
|
635
|
+
* @param resource
|
|
636
|
+
* @param doc
|
|
637
|
+
* @protected
|
|
638
|
+
*/
|
|
639
|
+
protected buildSwagger2(resource: SwaggerResource, doc: ApiDoc): Promise<void>;
|
|
640
|
+
/**
|
|
641
|
+
* 创建Model
|
|
642
|
+
* @param doc
|
|
643
|
+
* @protected
|
|
644
|
+
*/
|
|
645
|
+
protected buildSwagger2Models(doc: ApiDoc): {
|
|
646
|
+
models: TsModel[];
|
|
647
|
+
modelPoolMap: Map<string, TsModel>;
|
|
648
|
+
enumModels: TsEnumModel[];
|
|
649
|
+
};
|
|
650
|
+
/**
|
|
651
|
+
* 创建Service
|
|
652
|
+
* @param resource
|
|
653
|
+
* @param doc
|
|
654
|
+
* @param modelPoolMap
|
|
655
|
+
* @protected
|
|
656
|
+
*/
|
|
657
|
+
protected buildSwagger2Services(resource: SwaggerResource, doc: ApiDoc, modelPoolMap: Map<string, TsModel>): TsService[];
|
|
658
|
+
/**
|
|
659
|
+
* 创建参数Model
|
|
660
|
+
* @param doc
|
|
661
|
+
* @param modelPoolMap
|
|
662
|
+
* @protected
|
|
663
|
+
*/
|
|
664
|
+
protected buildSwagger2ParameterModels(doc: ApiDoc, modelPoolMap: Map<string, TsModel>): {
|
|
665
|
+
parameterModels: TsModel[];
|
|
666
|
+
enumModels: TsEnumModel[];
|
|
667
|
+
};
|
|
668
|
+
/**
|
|
669
|
+
* 计算出包的根目录,并更新到doc.basePath
|
|
670
|
+
* @param doc
|
|
671
|
+
* @protected
|
|
672
|
+
*/
|
|
673
|
+
protected resolveBasePath(doc: ApiDoc): void;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
declare interface NjkTsSwagger2BuilderConfig {
|
|
677
|
+
/**
|
|
678
|
+
* 模版配置
|
|
679
|
+
*/
|
|
680
|
+
template?: NjkTemplateConfig;
|
|
681
|
+
/**
|
|
682
|
+
* 输出目录
|
|
683
|
+
*/
|
|
684
|
+
outputDir?: string;
|
|
685
|
+
/**
|
|
686
|
+
* 作为package路径的层级深度,可选范围=[1, 9],默认3
|
|
687
|
+
*/
|
|
688
|
+
packageDepth?: number;
|
|
689
|
+
/**
|
|
690
|
+
* responseType解析器
|
|
691
|
+
* @param apiOperation
|
|
692
|
+
*/
|
|
693
|
+
responseTypeResolver?: (apiOperation: ApiOperation) => string;
|
|
694
|
+
/**
|
|
695
|
+
* 文件命名风格
|
|
696
|
+
*/
|
|
697
|
+
fileNameStyle?: NameStyle;
|
|
698
|
+
/**
|
|
699
|
+
* 包名命名风格
|
|
700
|
+
*/
|
|
701
|
+
packageNameStyle?: NameStyle;
|
|
702
|
+
swagger: {
|
|
703
|
+
/**
|
|
704
|
+
* swagger域名
|
|
705
|
+
*/
|
|
706
|
+
domain: string;
|
|
707
|
+
/**
|
|
708
|
+
* resourcePath请求路径,默认swagger2的路径
|
|
709
|
+
*/
|
|
710
|
+
resourcePath?: string;
|
|
711
|
+
/**
|
|
712
|
+
* documentPath请求路径,默认swagger2的路径
|
|
713
|
+
*/
|
|
714
|
+
documentPath?: string;
|
|
715
|
+
/**
|
|
716
|
+
* 过滤SwaggerResource,可选择只输出部分SwaggerResource的接口
|
|
717
|
+
*/
|
|
718
|
+
resourceFilter?: (resource: SwaggerResource) => boolean;
|
|
719
|
+
/**
|
|
720
|
+
* SwaggerResource中过滤paths,更细粒度的根据path过滤
|
|
721
|
+
*/
|
|
722
|
+
pathFilter?: (resource: SwaggerResource, url: string, method: string, apiOperation: ApiOperation) => boolean;
|
|
723
|
+
};
|
|
724
|
+
templateContext?: {
|
|
725
|
+
/**
|
|
726
|
+
* Model 模版上下文
|
|
727
|
+
*/
|
|
728
|
+
model?: Data<any>;
|
|
729
|
+
/**
|
|
730
|
+
* EnumModel 模版上下文
|
|
731
|
+
*/
|
|
732
|
+
enumModel?: Data<any>;
|
|
733
|
+
/**
|
|
734
|
+
* Service 模版上下文
|
|
735
|
+
*/
|
|
736
|
+
service?: Data<any>;
|
|
737
|
+
};
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
export declare class NjkTsSwagger3Builder extends NjkTsBuilder {
|
|
741
|
+
protected config: NjkTsSwagger3BuilderConfig;
|
|
742
|
+
protected modelTranslator: Swagger3ModelTranslator;
|
|
743
|
+
protected modelPropertyTranslator: Swagger3ModelPropertyTranslator;
|
|
744
|
+
protected parameterTranslator: Swagger3ParameterTranslator;
|
|
745
|
+
protected requestBodyTranslator: Swagger3RequestBodyTranslator;
|
|
746
|
+
protected responseTranslator: Swagger3ResponseTranslator;
|
|
747
|
+
protected apiOperationTranslator: Swagger3ApiOperationTranslator;
|
|
748
|
+
protected genericityDependenciesTranslator: Swagger3TsGenericityDependenciesTranslator;
|
|
749
|
+
swaggerService: Swagger3Service;
|
|
750
|
+
protected packageDepth: number;
|
|
751
|
+
protected defaultSwaggerResourcePath: string;
|
|
752
|
+
protected defaultSwaggerDocumentPath: string;
|
|
753
|
+
constructor(config: NjkTsSwagger3BuilderConfig);
|
|
754
|
+
build(): void;
|
|
755
|
+
buildSwagger3(resource: Swagger3Resource, doc: Swagger3ApiDoc): Promise<void>;
|
|
756
|
+
buildSwagger3Models(doc: Swagger3ApiDoc, data: {
|
|
757
|
+
rootPackage: string;
|
|
758
|
+
}): {
|
|
759
|
+
models: TsModel[];
|
|
760
|
+
modelPoolMap: Map<string, TsModel>;
|
|
761
|
+
enumModels: TsEnumModel[];
|
|
762
|
+
};
|
|
763
|
+
buildSwagger3Services(resource: Swagger3Resource, doc: Swagger3ApiDoc, modelPoolMap: Map<string, TsModel>): TsService[];
|
|
764
|
+
/**
|
|
765
|
+
* 创建参数Model
|
|
766
|
+
* @param doc
|
|
767
|
+
* @param data
|
|
768
|
+
*/
|
|
769
|
+
buildSwagger3ParameterModels(doc: Swagger3ApiDoc, data: {
|
|
770
|
+
rootPackage: string;
|
|
771
|
+
modelPoolMap: Map<string, TsModel>;
|
|
772
|
+
}): {
|
|
773
|
+
parameterModels: TsModel[];
|
|
774
|
+
enumModels: TsEnumModel[];
|
|
775
|
+
};
|
|
776
|
+
/**
|
|
777
|
+
* 计算出包的根目录,并更新到doc.basePath
|
|
778
|
+
* @param doc
|
|
779
|
+
*/
|
|
780
|
+
resolveBasePath(doc: Swagger3ApiDoc): string;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
declare interface NjkTsSwagger3BuilderConfig extends NjkTsSwagger2BuilderConfig {
|
|
784
|
+
responseTypeResolver?: (apiOperation: Swagger3ApiOperation) => string;
|
|
785
|
+
swagger: {
|
|
786
|
+
/**
|
|
787
|
+
* swagger域名
|
|
788
|
+
*/
|
|
789
|
+
domain: string;
|
|
790
|
+
/**
|
|
791
|
+
* resourcePath请求路径,默认swagger2的路径
|
|
792
|
+
*/
|
|
793
|
+
resourcePath?: string;
|
|
794
|
+
/**
|
|
795
|
+
* documentPath请求路径,默认swagger2的路径
|
|
796
|
+
*/
|
|
797
|
+
documentPath?: string;
|
|
798
|
+
/**
|
|
799
|
+
* 过滤SwaggerResource,可选择只输出部分SwaggerResource的接口
|
|
800
|
+
*/
|
|
801
|
+
resourceFilter?: (resource: Swagger3Resource) => boolean;
|
|
802
|
+
/**
|
|
803
|
+
* SwaggerResource中过滤paths,更细粒度的根据path过滤
|
|
804
|
+
*/
|
|
805
|
+
pathFilter?: (resource: Swagger3Resource, url: string, method: string, apiOperation: Swagger3ApiOperation) => boolean;
|
|
806
|
+
/**
|
|
807
|
+
* 枚举处理
|
|
808
|
+
*/
|
|
809
|
+
resolveEnumItem?: (item: string) => NjkEnumItem;
|
|
810
|
+
};
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
declare interface Parameter {
|
|
814
|
+
description: string;
|
|
815
|
+
in: string;
|
|
816
|
+
name: string;
|
|
817
|
+
required: boolean;
|
|
818
|
+
items?: TypeArray<SampleType>;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
declare interface ParameterWrapper {
|
|
822
|
+
parameters: Parameter[];
|
|
823
|
+
package: string;
|
|
824
|
+
name: string;
|
|
825
|
+
modelPoolMap: Map<string, TsModel>;
|
|
826
|
+
enumPackageName?: string;
|
|
827
|
+
paramPackageName?: string;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
declare interface Response_2 {
|
|
831
|
+
description: string;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
declare interface ResponseWrapper {
|
|
835
|
+
response: Response_2;
|
|
836
|
+
modelPoolMap: Map<string, TsModel>;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
declare interface SampleModelProperty extends ModelProperty, SampleType {
|
|
840
|
+
format?: string;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
declare interface SampleType {
|
|
844
|
+
type: string;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
declare class Swagger2ApiOperationTranslator implements Translator<ApiOperationWrapper, TsApi> {
|
|
848
|
+
protected parameterTranslator: Swagger2ParameterTranslator;
|
|
849
|
+
protected responseTranslator: Swagger2ResponseTranslator;
|
|
850
|
+
protected genericityDependenciesTranslator: TsGenericityDependenciesTranslator;
|
|
851
|
+
translate(data: ApiOperationWrapper): TsApi;
|
|
852
|
+
resolveServiceName(name: string): string;
|
|
853
|
+
resolveApiName(name: string, options?: ApiOperationResolveApiName): string;
|
|
854
|
+
resolveApiParameterName(name: string, options?: ApiOperationResolveApiName): string;
|
|
855
|
+
/**
|
|
856
|
+
* responseType解析
|
|
857
|
+
* @param apiOperation
|
|
858
|
+
*/
|
|
859
|
+
responseTypeResolver(apiOperation: ApiOperation): string;
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
declare class Swagger2EnumModelTranslator implements Translator<EnumModelPropertyWrapper, TsEnumModel> {
|
|
863
|
+
translate(data: EnumModelPropertyWrapper): TsEnumModel;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
declare class Swagger2ModelPropertyTranslator implements Translator<ModelPropertyWrapper, TsModelProperty> {
|
|
867
|
+
translate(data: ModelPropertyWrapper): TsModelProperty;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
declare class Swagger2ModelTranslator implements Translator<ModelWrapper, TsModel | null> {
|
|
871
|
+
protected modelPropertyTranslator: Swagger2ModelPropertyTranslator;
|
|
872
|
+
protected enumModelPropertyTranslator: Swagger2EnumModelTranslator;
|
|
873
|
+
translate(data: ModelWrapper): TsModel | null;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
declare class Swagger2ParameterTranslator implements Translator<ParameterWrapper, TsApiParameter> {
|
|
877
|
+
protected enumModelPropertyTranslator: Swagger2EnumModelTranslator;
|
|
878
|
+
translate(data: ParameterWrapper): TsApiParameter;
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
declare class Swagger2ResponseTranslator implements Translator<ResponseWrapper, TsApiResponse | null> {
|
|
882
|
+
translate(data: ResponseWrapper): TsApiResponse | null;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
declare interface Swagger3ApiComponent {
|
|
886
|
+
schemas: Data<Swagger3Model>;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
declare interface Swagger3ApiDoc {
|
|
890
|
+
components: Swagger3ApiComponent;
|
|
891
|
+
info: Swagger3ApiInfo;
|
|
892
|
+
openapi: string;
|
|
893
|
+
paths: Swagger3ApiPath;
|
|
894
|
+
servers: Swagger3ApiServer[];
|
|
895
|
+
tags: Swagger3ApiTag[];
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
declare interface Swagger3ApiInfo {
|
|
899
|
+
contact: SwaggerApiInfoContact;
|
|
900
|
+
description: string;
|
|
901
|
+
title: string;
|
|
902
|
+
version: string;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
declare interface Swagger3ApiOperation {
|
|
906
|
+
operationId: string;
|
|
907
|
+
responses: Swagger3HttpResponses;
|
|
908
|
+
summary: string;
|
|
909
|
+
tags?: string[];
|
|
910
|
+
produces?: string[];
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
declare interface Swagger3ApiOperationResolveApiName {
|
|
914
|
+
map?: CountMap;
|
|
915
|
+
countName?: (name: string) => string;
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
declare class Swagger3ApiOperationTranslator implements Translator<Swagger3ApiOperationWrapper, TsApi> {
|
|
919
|
+
protected parameterTranslator: Swagger3ParameterTranslator;
|
|
920
|
+
protected requestBodyTranslator: Swagger3RequestBodyTranslator;
|
|
921
|
+
protected responseTranslator: Swagger3ResponseTranslator;
|
|
922
|
+
protected genericityDependenciesTranslator: Swagger3TsGenericityDependenciesTranslator;
|
|
923
|
+
translate(data: Swagger3ApiOperationWrapper): TsApi;
|
|
924
|
+
resolveServiceName(name: string): string;
|
|
925
|
+
resolveApiName(name: string, options?: Swagger3ApiOperationResolveApiName): string;
|
|
926
|
+
resolveApiParameterName(name: string, options?: Swagger3ApiOperationResolveApiName): string;
|
|
927
|
+
/**
|
|
928
|
+
* responseType解析
|
|
929
|
+
*
|
|
930
|
+
* @param {Swagger3ApiOperation} apiOperation
|
|
931
|
+
* @returns {string}
|
|
932
|
+
*
|
|
933
|
+
* @memberOf Swagger3ApiOperationTranslator
|
|
934
|
+
*/
|
|
935
|
+
responseTypeResolver(apiOperation: Swagger3ApiOperation): string;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
declare interface Swagger3ApiOperationWrapper {
|
|
939
|
+
serviceName: string;
|
|
940
|
+
operationName: string;
|
|
941
|
+
package: string;
|
|
942
|
+
url: string;
|
|
943
|
+
method: string;
|
|
944
|
+
apiOperation: Swagger3ApiOperation;
|
|
945
|
+
responseTypeResolver?: (apiOperation: Swagger3ApiOperation) => string;
|
|
946
|
+
modelPoolMap: Map<string, TsModel>;
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
declare interface Swagger3ApiPath {
|
|
950
|
+
[prop: string]: Data<Swagger3ApiOperation>;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
declare interface Swagger3ApiServer {
|
|
954
|
+
description: string;
|
|
955
|
+
url: string;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
declare interface Swagger3ApiTag {
|
|
959
|
+
name: string;
|
|
960
|
+
description: string;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
declare interface Swagger3ArrayType<T> {
|
|
964
|
+
type: 'array';
|
|
965
|
+
items: T;
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
declare type Swagger3ComplexType = Swagger3Ref | Swagger3SampleType | Swagger3ArrayType<Swagger3Ref> | Swagger3ArrayType<Swagger3SampleType>;
|
|
969
|
+
|
|
970
|
+
declare interface Swagger3EnumModelProperty extends Swagger3ModelProperty {
|
|
971
|
+
type: 'string' | 'array';
|
|
972
|
+
enum: string[];
|
|
973
|
+
items?: Swagger3EnumModelProperty;
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
declare interface Swagger3EnumModelPropertyWrapper {
|
|
977
|
+
package: string;
|
|
978
|
+
modelProperty: Swagger3EnumModelProperty;
|
|
979
|
+
modelPropertyName: string;
|
|
980
|
+
modelName: string;
|
|
981
|
+
resolveEnumItem?: (item: string) => NjkEnumItem;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
declare class Swagger3EnumModelTranslator implements Translator<Swagger3EnumModelPropertyWrapper, TsEnumModel> {
|
|
985
|
+
translate(data: Swagger3EnumModelPropertyWrapper): TsEnumModel;
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
declare interface Swagger3HttpResponse {
|
|
989
|
+
description: string;
|
|
990
|
+
content?: Data<Swagger3Response>;
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
declare interface Swagger3HttpResponses {
|
|
994
|
+
[prop: number]: Swagger3HttpResponse;
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
declare interface Swagger3Model {
|
|
998
|
+
type: string;
|
|
999
|
+
title?: string;
|
|
1000
|
+
required?: string;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
declare interface Swagger3ModelProperty {
|
|
1004
|
+
description?: string;
|
|
1005
|
+
format?: string;
|
|
1006
|
+
allOf?: Swagger3Ref[];
|
|
1007
|
+
oneOf?: Swagger3Ref[];
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
declare class Swagger3ModelPropertyTranslator implements Translator<Swagger3ModelPropertyWrapper, TsModelProperty> {
|
|
1011
|
+
translate(data: Swagger3ModelPropertyWrapper): TsModelProperty;
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
declare interface Swagger3ModelPropertyWrapper {
|
|
1015
|
+
modelProperty: Swagger3ModelProperty;
|
|
1016
|
+
modelPropertyName: string;
|
|
1017
|
+
model: Swagger3Model;
|
|
1018
|
+
modelName: string;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
declare class Swagger3ModelTranslator implements Translator<Swagger3ModelWrapper, TsModel | null> {
|
|
1022
|
+
protected modelPropertyTranslator: Swagger3ModelPropertyTranslator;
|
|
1023
|
+
protected enumModelPropertyTranslator: Swagger3EnumModelTranslator;
|
|
1024
|
+
translate(data: Swagger3ModelWrapper): TsModel;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
declare interface Swagger3ModelWrapper {
|
|
1028
|
+
package: string;
|
|
1029
|
+
modelName: string;
|
|
1030
|
+
model: Swagger3Model;
|
|
1031
|
+
resolveEnumItem?: (item: string) => NjkEnumItem;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
declare interface Swagger3Parameter {
|
|
1035
|
+
in: Swagger3ParameterIn | string;
|
|
1036
|
+
name: string;
|
|
1037
|
+
required: boolean;
|
|
1038
|
+
style: string;
|
|
1039
|
+
schema: Swagger3Model;
|
|
1040
|
+
description?: string;
|
|
1041
|
+
format?: string;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
declare enum Swagger3ParameterIn {
|
|
1045
|
+
header = "header",
|
|
1046
|
+
query = "query",
|
|
1047
|
+
path = "path",
|
|
1048
|
+
body = "body",
|
|
1049
|
+
formData = "formData"
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
declare class Swagger3ParameterTranslator implements Translator<Swagger3ParameterWrapper, TsApiParameter> {
|
|
1053
|
+
protected enumModelPropertyTranslator: Swagger3EnumModelTranslator;
|
|
1054
|
+
translate(data: Swagger3ParameterWrapper): TsApiParameter;
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
declare interface Swagger3ParameterWrapper {
|
|
1058
|
+
parameters: Swagger3Parameter[];
|
|
1059
|
+
package: string;
|
|
1060
|
+
name: string;
|
|
1061
|
+
modelPoolMap: Map<string, TsModel>;
|
|
1062
|
+
resolveEnumItem?: (item: string) => NjkEnumItem;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
declare interface Swagger3Ref {
|
|
1066
|
+
$ref: string;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
declare interface Swagger3RequestBody {
|
|
1070
|
+
contentType?: string;
|
|
1071
|
+
schema: Swagger3ComplexType;
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
declare class Swagger3RequestBodyTranslator implements Translator<Swagger3RequestBodyWrapper, TsApiParameter> {
|
|
1075
|
+
translate(data: Swagger3RequestBodyWrapper): TsApiParameter;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
declare interface Swagger3RequestBodyWrapper {
|
|
1079
|
+
requestBody: Swagger3RequestBody;
|
|
1080
|
+
package: string;
|
|
1081
|
+
name: string;
|
|
1082
|
+
modelPoolMap: Map<string, TsModel>;
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
declare interface Swagger3Resource {
|
|
1086
|
+
location: string;
|
|
1087
|
+
name: string;
|
|
1088
|
+
swaggerVersion: string;
|
|
1089
|
+
url: string;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
declare interface Swagger3Response {
|
|
1093
|
+
responseType: string;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
declare class Swagger3ResponseTranslator implements Translator<Swagger3ResponseWrapper, TsApiResponse | null> {
|
|
1097
|
+
translate(data: Swagger3ResponseWrapper): TsApiResponse | null;
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
declare interface Swagger3ResponseWrapper {
|
|
1101
|
+
responses: Swagger3HttpResponses;
|
|
1102
|
+
modelPoolMap: Map<string, TsModel>;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
declare interface Swagger3SampleType {
|
|
1106
|
+
type: string;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
declare class Swagger3Service {
|
|
1110
|
+
protected domain: string;
|
|
1111
|
+
protected resourcePath: string;
|
|
1112
|
+
protected documentPath: string;
|
|
1113
|
+
constructor(domain: string, resourcePath?: string, documentPath?: string);
|
|
1114
|
+
/**
|
|
1115
|
+
* 获取 Swagger3Resource[]
|
|
1116
|
+
*/
|
|
1117
|
+
listSwaggerResources(): Promise<Swagger3Resource[]>;
|
|
1118
|
+
/**
|
|
1119
|
+
* 获取 Swagger3ApiDoc
|
|
1120
|
+
* @param group
|
|
1121
|
+
*/
|
|
1122
|
+
getApiDoc(group: string): Promise<Swagger3ApiDoc>;
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
declare class Swagger3TsGenericityDependenciesTranslator extends TsGenericityDependenciesTranslator {
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
declare interface SwaggerApiInfoContact {
|
|
1129
|
+
email: string;
|
|
1130
|
+
name: string;
|
|
1131
|
+
url: string;
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
declare interface SwaggerResource {
|
|
1135
|
+
location: string;
|
|
1136
|
+
name: string;
|
|
1137
|
+
swaggerVersion: string;
|
|
1138
|
+
url: string;
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
declare interface SwaggerResource {
|
|
1142
|
+
location: string;
|
|
1143
|
+
name: string;
|
|
1144
|
+
swaggerVersion: string;
|
|
1145
|
+
url: string;
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
declare class SwaggerService {
|
|
1149
|
+
protected domain: string;
|
|
1150
|
+
protected resourcePath: string;
|
|
1151
|
+
protected documentPath: string;
|
|
1152
|
+
constructor(domain: string, resourcePath?: string, documentPath?: string);
|
|
1153
|
+
/**
|
|
1154
|
+
* 获取 SwaggerResource[]
|
|
1155
|
+
*/
|
|
1156
|
+
listSwaggerResources(): Promise<SwaggerResource[]>;
|
|
1157
|
+
/**
|
|
1158
|
+
* 获取 ApiDoc
|
|
1159
|
+
* @param group
|
|
1160
|
+
*/
|
|
1161
|
+
getApiDoc(group: string): Promise<ApiDoc>;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
declare interface Translator<T, R> {
|
|
1165
|
+
/**
|
|
1166
|
+
* 转化
|
|
1167
|
+
* @param data
|
|
1168
|
+
*/
|
|
1169
|
+
translate(data: T): R;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
declare interface TsApi extends NjkApi {
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
declare interface TsApiParameter extends NjkApiParameter, TsModel {
|
|
1176
|
+
parent?: TsModelType;
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
declare interface TsApiResponse extends NjkApiResponse {
|
|
1180
|
+
/**
|
|
1181
|
+
* 类型
|
|
1182
|
+
*
|
|
1183
|
+
* @type {TsModelType}
|
|
1184
|
+
* @memberOf TsApiResponse
|
|
1185
|
+
*/
|
|
1186
|
+
modelType: TsModelType;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
declare interface TsEnumModel extends NjkEnumModel {
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
/**
|
|
1193
|
+
* 泛型
|
|
1194
|
+
*
|
|
1195
|
+
* @export
|
|
1196
|
+
* @interface TsGenericity
|
|
1197
|
+
*/
|
|
1198
|
+
declare interface TsGenericity {
|
|
1199
|
+
/**
|
|
1200
|
+
* 类名
|
|
1201
|
+
*
|
|
1202
|
+
* @type {string}
|
|
1203
|
+
* @memberOf TsGenericity
|
|
1204
|
+
*/
|
|
1205
|
+
className: string;
|
|
1206
|
+
/**
|
|
1207
|
+
* 包含内部所有的类名
|
|
1208
|
+
*
|
|
1209
|
+
* @type {string[]}
|
|
1210
|
+
* @memberOf TsGenericity
|
|
1211
|
+
*/
|
|
1212
|
+
classNames: string[];
|
|
1213
|
+
/**
|
|
1214
|
+
* 占位符
|
|
1215
|
+
*
|
|
1216
|
+
* @type {string}
|
|
1217
|
+
* @memberOf TsGenericity
|
|
1218
|
+
*/
|
|
1219
|
+
replaceName: string;
|
|
1220
|
+
/**
|
|
1221
|
+
* 包含内部所有的占位符
|
|
1222
|
+
*
|
|
1223
|
+
* @type {string[]}
|
|
1224
|
+
* @memberOf TsGenericity
|
|
1225
|
+
*/
|
|
1226
|
+
replaceNames: string[];
|
|
1227
|
+
/**
|
|
1228
|
+
* 显示名称,
|
|
1229
|
+
* showName直接包含了className => ClassName<...Genericities>
|
|
1230
|
+
*
|
|
1231
|
+
* @type {string}
|
|
1232
|
+
* @memberOf TsGenericity
|
|
1233
|
+
*/
|
|
1234
|
+
showName: string;
|
|
1235
|
+
/**
|
|
1236
|
+
* 泛型显示名称
|
|
1237
|
+
*
|
|
1238
|
+
* @type {string}
|
|
1239
|
+
* @memberOf TsGenericity
|
|
1240
|
+
*/
|
|
1241
|
+
replaceShowName: string;
|
|
1242
|
+
/**
|
|
1243
|
+
* 内部泛型
|
|
1244
|
+
*
|
|
1245
|
+
* @type {TsGenericity[]}
|
|
1246
|
+
* @memberOf TsGenericity
|
|
1247
|
+
*/
|
|
1248
|
+
genericities: TsGenericity[];
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
/**
|
|
1252
|
+
* 计算出TsGenericity的所有依赖
|
|
1253
|
+
*/
|
|
1254
|
+
declare class TsGenericityDependenciesTranslator implements Translator<TsGenericityWrapper, NjkDependency[]> {
|
|
1255
|
+
translate(data: TsGenericityWrapper): NjkDependency[];
|
|
1256
|
+
resolveTsModelTypeDependencies(modelType: TsModelType, modelPoolMap: Map<string, TsModel>, dependencies?: NjkDependency[]): NjkDependency[];
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
declare interface TsGenericityWrapper {
|
|
1260
|
+
package: string;
|
|
1261
|
+
genericity: TsGenericity;
|
|
1262
|
+
modelPoolMap: Map<string, TsModel>;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
declare interface TsModel extends NjkModel {
|
|
1266
|
+
/**
|
|
1267
|
+
* 包含的枚举类型
|
|
1268
|
+
*
|
|
1269
|
+
* @type {TsModel[]}
|
|
1270
|
+
* @memberOf TsModel
|
|
1271
|
+
*/
|
|
1272
|
+
enumModels?: TsEnumModel[];
|
|
1273
|
+
/**
|
|
1274
|
+
* 泛型
|
|
1275
|
+
*
|
|
1276
|
+
* @type {TsGenericity}
|
|
1277
|
+
* @memberOf TsModelProperty
|
|
1278
|
+
*/
|
|
1279
|
+
genericity?: TsGenericity;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
declare interface TsModelProperty extends NjkModelProperty {
|
|
1283
|
+
/**
|
|
1284
|
+
* 属性修饰符
|
|
1285
|
+
*
|
|
1286
|
+
* @type {TsModelPropertyModifer}
|
|
1287
|
+
* @memberOf TsModelProperty
|
|
1288
|
+
*/
|
|
1289
|
+
modifier: TsModelPropertyModifer;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
declare enum TsModelPropertyModifer {
|
|
1293
|
+
package = "",
|
|
1294
|
+
public = "public",
|
|
1295
|
+
protected = "protected",
|
|
1296
|
+
private = "private"
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
declare interface TsModelType {
|
|
1300
|
+
/**
|
|
1301
|
+
* 名称
|
|
1302
|
+
*
|
|
1303
|
+
* @type {string}
|
|
1304
|
+
* @memberOf TsModelType
|
|
1305
|
+
*/
|
|
1306
|
+
name: string;
|
|
1307
|
+
/**
|
|
1308
|
+
* 限定类型
|
|
1309
|
+
*
|
|
1310
|
+
* @type {TsModelTypeRestrict}
|
|
1311
|
+
* @memberOf TsModelType
|
|
1312
|
+
*/
|
|
1313
|
+
type: TsModelTypeRestrict;
|
|
1314
|
+
/**
|
|
1315
|
+
* 是否为数组
|
|
1316
|
+
*
|
|
1317
|
+
* @type {boolean}
|
|
1318
|
+
* @memberOf TsModelType
|
|
1319
|
+
*/
|
|
1320
|
+
isArray: boolean;
|
|
1321
|
+
/**
|
|
1322
|
+
* 引用类型时为指定的引用对象
|
|
1323
|
+
* 泛型时为泛型定义
|
|
1324
|
+
*
|
|
1325
|
+
* @type {TsModel | TsGenericity}
|
|
1326
|
+
* @memberOf TsModelType
|
|
1327
|
+
*/
|
|
1328
|
+
target?: TsModel | TsGenericity;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
declare enum TsModelTypeRestrict {
|
|
1332
|
+
/**
|
|
1333
|
+
* 基础类型
|
|
1334
|
+
*/
|
|
1335
|
+
sample = 0,
|
|
1336
|
+
/**
|
|
1337
|
+
* 引用类型
|
|
1338
|
+
*/
|
|
1339
|
+
ref = 1,
|
|
1340
|
+
/**
|
|
1341
|
+
* 泛型
|
|
1342
|
+
*/
|
|
1343
|
+
genericity = 2
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
declare interface TsService extends NjkService {
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
declare interface TypeArray<T> {
|
|
1350
|
+
type: 'array';
|
|
1351
|
+
items: T;
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
export { }
|