ng2-rest-swagger-generator 21.0.14 → 21.0.17
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/browser/fesm2022/ng2-rest-swagger-generator-browser.mjs +157 -36
- package/browser/fesm2022/ng2-rest-swagger-generator-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/ng2-rest-swagger-generator-browser.d.ts +2 -4
- package/browser-prod/fesm2022/ng2-rest-swagger-generator-browser.mjs +164 -43
- package/browser-prod/fesm2022/ng2-rest-swagger-generator-browser.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/ng2-rest-swagger-generator-browser.d.ts +2 -4
- package/browser-prod.re-export.json +1 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/helpers.d.ts +6 -7
- package/lib/helpers.js +179 -71
- package/lib/helpers.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib-prod/build-info._auto-generated_.ts +27 -0
- package/lib-prod/env/env.angular-node-app.ts +66 -0
- package/lib-prod/env/env.docs-webapp.ts +66 -0
- package/lib-prod/env/env.electron-app.ts +66 -0
- package/lib-prod/env/env.mobile-app.ts +66 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.ts +66 -0
- package/lib-prod/env/env.vscode-plugin.ts +66 -0
- package/lib-prod/helpers.ts +657 -0
- package/lib-prod/{index._auto-generated_.js → index._auto-generated_.ts} +0 -1
- package/lib-prod/lib-info.md +8 -0
- package/lib-prod/migrations/index.ts +2 -0
- package/lib-prod/migrations/migrations-info.md +6 -0
- package/lib-prod/migrations/{migrations_index._auto-generated_.js → migrations_index._auto-generated_.ts} +2 -1
- package/lib-prod/models.ts +196 -0
- package/lib-prod/package.json +1 -1
- package/lib-prod.re-export.json +1 -0
- package/package.json +3 -2
- package/websql/fesm2022/ng2-rest-swagger-generator-websql.mjs +157 -35
- package/websql/fesm2022/ng2-rest-swagger-generator-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/ng2-rest-swagger-generator-websql.d.ts +2 -4
- package/websql-prod/fesm2022/ng2-rest-swagger-generator-websql.mjs +164 -42
- package/websql-prod/fesm2022/ng2-rest-swagger-generator-websql.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/ng2-rest-swagger-generator-websql.d.ts +2 -4
- package/websql-prod.re-export.json +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +0 -24
- package/lib-prod/build-info._auto-generated_.js +0 -30
- package/lib-prod/build-info._auto-generated_.js.map +0 -1
- package/lib-prod/env/env.angular-node-app.d.ts +0 -64
- package/lib-prod/env/env.angular-node-app.js +0 -71
- package/lib-prod/env/env.angular-node-app.js.map +0 -1
- package/lib-prod/env/env.docs-webapp.d.ts +0 -64
- package/lib-prod/env/env.docs-webapp.js +0 -71
- package/lib-prod/env/env.docs-webapp.js.map +0 -1
- package/lib-prod/env/env.electron-app.d.ts +0 -64
- package/lib-prod/env/env.electron-app.js +0 -71
- package/lib-prod/env/env.electron-app.js.map +0 -1
- package/lib-prod/env/env.mobile-app.d.ts +0 -64
- package/lib-prod/env/env.mobile-app.js +0 -71
- package/lib-prod/env/env.mobile-app.js.map +0 -1
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +0 -64
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +0 -71
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +0 -1
- package/lib-prod/env/env.vscode-plugin.d.ts +0 -64
- package/lib-prod/env/env.vscode-plugin.js +0 -71
- package/lib-prod/env/env.vscode-plugin.js.map +0 -1
- package/lib-prod/env/index.js +0 -23
- package/lib-prod/env/index.js.map +0 -1
- package/lib-prod/helpers.d.ts +0 -59
- package/lib-prod/helpers.js +0 -397
- package/lib-prod/helpers.js.map +0 -1
- package/lib-prod/index._auto-generated_.d.ts +0 -0
- package/lib-prod/index._auto-generated_.js.map +0 -1
- package/lib-prod/index.js +0 -18
- package/lib-prod/index.js.map +0 -1
- package/lib-prod/migrations/index.d.ts +0 -1
- package/lib-prod/migrations/index.js +0 -19
- package/lib-prod/migrations/index.js.map +0 -1
- package/lib-prod/migrations/migrations_index._auto-generated_.d.ts +0 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js.map +0 -1
- package/lib-prod/models.d.ts +0 -159
- package/lib-prod/models.js +0 -6
- package/lib-prod/models.js.map +0 -1
- /package/lib-prod/env/{index.d.ts → index.ts} +0 -0
- /package/lib-prod/{index.d.ts → index.ts} +0 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
// import { Models as MorphiModels } from 'morphi';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
//namespace Models
|
|
5
|
+
|
|
6
|
+
// export import Morphi = MorphiModels;
|
|
7
|
+
|
|
8
|
+
export interface Models__NS__PathResource {
|
|
9
|
+
clean_path?: string;
|
|
10
|
+
singleModelType?: string;
|
|
11
|
+
multipleModelType?: string;
|
|
12
|
+
pathParamsType?: string;
|
|
13
|
+
queryParamsType?: string;
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
model?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface Models__NS__Param {
|
|
19
|
+
name: string;
|
|
20
|
+
type: string; // "string" | "number" | "integer" | "boolean" | "array" | "file";
|
|
21
|
+
required: boolean;
|
|
22
|
+
isObject?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface Models__NS__ServiceMethod {
|
|
26
|
+
summary: string;
|
|
27
|
+
path_cleand: string;
|
|
28
|
+
params: {
|
|
29
|
+
path?: Models__NS__Param[];
|
|
30
|
+
query?: Models__NS__Param[];
|
|
31
|
+
body?: Models__NS__Param[];
|
|
32
|
+
}
|
|
33
|
+
method: any; //Morphi.Rest.HttpMethod;
|
|
34
|
+
isArray: boolean;
|
|
35
|
+
comment?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
//namespace Models__NS__Swagger
|
|
41
|
+
|
|
42
|
+
export type Models__NS__Swagger__NS__DataFormat = 'int32' | 'int64' | 'double' | 'float'
|
|
43
|
+
export type Models__NS__Swagger__NS__DataType = 'object' | 'array' | 'string' | 'boolean'
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
export interface Models__NS__Swagger__NS__PropertyName {
|
|
47
|
+
[name: string]: Models__NS__Swagger__NS__Parameter
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface Models__NS__Swagger__NS__SwaggerDef {
|
|
51
|
+
required: string[];
|
|
52
|
+
type: Models__NS__Swagger__NS__DataType;
|
|
53
|
+
properties: Models__NS__Swagger__NS__PropertyName;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
export interface Models__NS__Swagger__NS__SwaggerDefinition {
|
|
58
|
+
[name: string]: Models__NS__Swagger__NS__SwaggerDef;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface Models__NS__Swagger__NS__ObjSchema {
|
|
62
|
+
$ref: string;
|
|
63
|
+
type: "string" | "number" | "integer" | "boolean" | "array" | "file";
|
|
64
|
+
items: {
|
|
65
|
+
$ref: string;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface Models__NS__Swagger__NS__Response {
|
|
70
|
+
description: string;
|
|
71
|
+
schema: Models__NS__Swagger__NS__ObjSchema;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface Models__NS__Swagger__NS__SwaggerResponse {
|
|
75
|
+
[path: string]: Models__NS__Swagger__NS__Response;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface Models__NS__Swagger__NS__Parameter {
|
|
79
|
+
$ref: string;
|
|
80
|
+
/**
|
|
81
|
+
* Required. The schema defining the type used for the body parameter.
|
|
82
|
+
*/
|
|
83
|
+
schema: {
|
|
84
|
+
$ref: string;
|
|
85
|
+
items: Models__NS__Swagger__NS__Parameter;
|
|
86
|
+
type: "string" | "number" | "integer" | "boolean" | "array" | "file";
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Required. The name of the parameter. Parameter names are case sensitive.
|
|
90
|
+
* If in is "path", the name field MUST correspond to the associated path segment
|
|
91
|
+
* from the path field in the Paths Object. See Path Templating for further information.
|
|
92
|
+
* For all other cases, the name corresponds to the parameter name used based on the in property.
|
|
93
|
+
*/
|
|
94
|
+
name: string;
|
|
95
|
+
in: 'query' | 'path' | 'body' | 'formData' | 'header';
|
|
96
|
+
/**
|
|
97
|
+
* A brief description of the parameter. This could contain examples of use.
|
|
98
|
+
* GFM syntax can be used for rich text representation.
|
|
99
|
+
*/
|
|
100
|
+
description: string;
|
|
101
|
+
/**
|
|
102
|
+
* Required if type is "array". Describes the type of items in the array.
|
|
103
|
+
*/
|
|
104
|
+
items: Models__NS__Swagger__NS__Parameter;
|
|
105
|
+
required: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Sets the ability to pass empty-valued parameters. This is valid only
|
|
108
|
+
* for either query or formData parameters and allows you to send a parameter
|
|
109
|
+
* with a name only or an empty value. Default value is false.
|
|
110
|
+
*/
|
|
111
|
+
allowEmptyValue: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Required. The type of the parameter. Since the parameter is not located
|
|
114
|
+
* at the request body, it is limited to simple types (that is, not an object).
|
|
115
|
+
* The value MUST be one of "string", "number", "integer", "boolean", "array"
|
|
116
|
+
* or "file". If type is "file", the consumes MUST be either "multipart/form-data",
|
|
117
|
+
* " application/x-www-form-urlencoded" or both and the parameter MUST be in "formData".
|
|
118
|
+
*/
|
|
119
|
+
type: "string" | "number" | "integer" | "boolean" | "array" | "file";
|
|
120
|
+
format: "int32" | "int64" | "float" | "double" | "byte" | "binary" | "date" | "date-time" | "password";
|
|
121
|
+
/**
|
|
122
|
+
* Determines the format of the array if type array is used. Possible values are:
|
|
123
|
+
* csv - comma separated values foo,bar.
|
|
124
|
+
* ssv - space separated values foo bar.
|
|
125
|
+
* tsv - tab separated values foo\tbar.
|
|
126
|
+
* pipes - pipe separated values foo|bar.
|
|
127
|
+
* Default value is csv.
|
|
128
|
+
*/
|
|
129
|
+
collectionFormat: 'csv' | 'ssv' | 'tsv' | 'pipes';
|
|
130
|
+
/**
|
|
131
|
+
* Declares the value of the item that the server will use if none is provided.
|
|
132
|
+
* (Note: "default" has no meaning for required items.)
|
|
133
|
+
* See http://json-schema.org/latest/json-schema-validation.html#anchor101.
|
|
134
|
+
* Unlike JSON Schema this value MUST conform to the defined type for the data type.
|
|
135
|
+
*/
|
|
136
|
+
default: any;
|
|
137
|
+
/**
|
|
138
|
+
* The value of this keyword MUST be an array.
|
|
139
|
+
* This array SHOULD have at least one element.
|
|
140
|
+
* Elements in the array SHOULD be unique.
|
|
141
|
+
* Elements in the array MAY be of any type, including null.
|
|
142
|
+
* An instance validates successfully against this keyword if its value
|
|
143
|
+
* is equal to one of the elements in this keyword's array value.
|
|
144
|
+
*/
|
|
145
|
+
enum: any[];
|
|
146
|
+
maxLength: number;
|
|
147
|
+
minLength: number;
|
|
148
|
+
maxItems: number;
|
|
149
|
+
minItems: number;
|
|
150
|
+
uniqueItems: boolean;
|
|
151
|
+
pattern: number;
|
|
152
|
+
maximum: number;
|
|
153
|
+
exclusiveMaximum: boolean;
|
|
154
|
+
minimum: number;
|
|
155
|
+
exclusiveMinimum: number;
|
|
156
|
+
multipleOf: boolean;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface Models__NS__Swagger__NS__Method {
|
|
160
|
+
tags: string[];
|
|
161
|
+
summary: string;
|
|
162
|
+
operationId: string;
|
|
163
|
+
consumes: string[];
|
|
164
|
+
produces: string[];
|
|
165
|
+
parameters: Models__NS__Swagger__NS__Parameter[];
|
|
166
|
+
responses: Models__NS__Swagger__NS__SwaggerResponse[];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface Models__NS__Swagger__NS__SwaggerMethod {
|
|
170
|
+
[path: string]: Models__NS__Swagger__NS__Method;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export interface Models__NS__Swagger__NS__SwaggerPath {
|
|
174
|
+
[path: string]: Models__NS__Swagger__NS__SwaggerMethod;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export interface Models__NS__Swagger__NS__SwaggerTag {
|
|
178
|
+
name: string;
|
|
179
|
+
// description: string;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface Models__NS__Swagger__NS__SwaggerModel {
|
|
183
|
+
host: string;
|
|
184
|
+
basePath: string;
|
|
185
|
+
tags: Models__NS__Swagger__NS__SwaggerTag[];
|
|
186
|
+
paths: Models__NS__Swagger__NS__SwaggerPath;
|
|
187
|
+
definitions: Models__NS__Swagger__NS__SwaggerDefinition;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
//end of namespace Models__NS__Swagger
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
//end of namespace Models
|
package/lib-prod/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng2-rest-swagger-generator",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.0.17",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"test": "mocha --require ts-node/register src/**/*.spec.ts",
|
|
6
6
|
"test:watch": "mocha --compilers ts-node/register src/**/*.spec.ts --watch",
|
|
@@ -50,5 +50,6 @@
|
|
|
50
50
|
"bin": {
|
|
51
51
|
"ng2-rest-swagger-generator": "bin/ng2-rest-swagger-generator"
|
|
52
52
|
},
|
|
53
|
-
"peerDependencies": {}
|
|
53
|
+
"peerDependencies": {},
|
|
54
|
+
"devDependencies": {}
|
|
54
55
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ } from 'tnp-core/websql';
|
|
2
2
|
|
|
3
|
-
class HelpersSwagger
|
|
3
|
+
class HelpersSwagger {
|
|
4
4
|
static { this.SYMBOL = {
|
|
5
5
|
INDEX_SWG: Symbol(),
|
|
6
|
-
OUTPUT_FOLDER: Symbol()
|
|
6
|
+
OUTPUT_FOLDER: Symbol(),
|
|
7
7
|
}; }
|
|
8
8
|
static preparePaths(apis, outputBase) {
|
|
9
9
|
this.output = `${process.cwd()}/${outputBase}`;
|
|
@@ -11,7 +11,10 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
11
11
|
}
|
|
12
12
|
static prepareModel(swg, indexSwg, isHttpsEnable) {
|
|
13
13
|
swg[this.SYMBOL.INDEX_SWG] = indexSwg;
|
|
14
|
-
swg.host =
|
|
14
|
+
swg.host =
|
|
15
|
+
swg.host &&
|
|
16
|
+
(isHttpsEnable ? 'https' : 'http') +
|
|
17
|
+
`://${swg.host.replace(/:[0-9]*/g, '')}`;
|
|
15
18
|
if (!swg.basePath) {
|
|
16
19
|
swg.basePath = '';
|
|
17
20
|
}
|
|
@@ -36,8 +39,6 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
36
39
|
/* */
|
|
37
40
|
/* */
|
|
38
41
|
/* */
|
|
39
|
-
/* */
|
|
40
|
-
/* */
|
|
41
42
|
static get serviceFromTag() {
|
|
42
43
|
const self = this;
|
|
43
44
|
return {
|
|
@@ -45,6 +46,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
45
46
|
const names = [];
|
|
46
47
|
self.apis.map(swg => {
|
|
47
48
|
swg.tags.forEach(tag => {
|
|
49
|
+
// @ts-ignore
|
|
48
50
|
names.push(self.serviceFromTag.className(swg, tag));
|
|
49
51
|
});
|
|
50
52
|
});
|
|
@@ -58,7 +60,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
58
60
|
},
|
|
59
61
|
absoluteFilePath(swg, tag) {
|
|
60
62
|
return `${self.absolutePath.PathFolder_services_groupName(swg)}/${self.serviceFromTag.className(swg, tag)}.ts`;
|
|
61
|
-
}
|
|
63
|
+
},
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
66
|
static get endpoints() {
|
|
@@ -98,7 +100,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
98
100
|
PathFile_services_groupNAme_serviceName_ts(swg, tag) {
|
|
99
101
|
const serviceFileName = self.serviceFromTag.className(swg, tag);
|
|
100
102
|
return `${self.absolutePath.PathFolder_services_groupName(swg)}/${serviceFileName}.ts`;
|
|
101
|
-
}
|
|
103
|
+
},
|
|
102
104
|
};
|
|
103
105
|
}
|
|
104
106
|
static get groupFromJSON() {
|
|
@@ -107,6 +109,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
107
109
|
get allGroupNames() {
|
|
108
110
|
const names = [];
|
|
109
111
|
self.apis.map(swg => {
|
|
112
|
+
// @ts-ignore
|
|
110
113
|
names.push(self.groupFromJSON.folderName(swg));
|
|
111
114
|
});
|
|
112
115
|
return names;
|
|
@@ -115,7 +118,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
115
118
|
const basePath = swg.basePath;
|
|
116
119
|
const index = swg[self.SYMBOL.INDEX_SWG];
|
|
117
120
|
return _.upperFirst(_.camelCase(basePath.trim() === '' ? `json${index}` : basePath));
|
|
118
|
-
}
|
|
121
|
+
},
|
|
119
122
|
};
|
|
120
123
|
}
|
|
121
124
|
static findTags(swg) {
|
|
@@ -125,7 +128,8 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
125
128
|
const a = swg.paths[p][m];
|
|
126
129
|
if (_.isArray(a.tags)) {
|
|
127
130
|
a.tags.forEach(tag => {
|
|
128
|
-
if (tags.filter(({ name }) => name === tag).length === 0) {
|
|
131
|
+
if (tags.filter(({ name }) => name === tag).length === 0) {
|
|
132
|
+
// @ts-ignore
|
|
129
133
|
tags.push({ name: tag });
|
|
130
134
|
}
|
|
131
135
|
});
|
|
@@ -138,15 +142,25 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
138
142
|
* To generate get/books/{id} => get_books__id_
|
|
139
143
|
*/
|
|
140
144
|
static cleanPath(path) {
|
|
141
|
-
return path
|
|
145
|
+
return path
|
|
146
|
+
.replace(/{/g, '_')
|
|
147
|
+
.replace(/}/g, '_')
|
|
148
|
+
.replace(/\//g, '_')
|
|
149
|
+
.replace(/-/g, '_');
|
|
142
150
|
}
|
|
143
151
|
static cleanPathModel(pathModel) {
|
|
144
152
|
return pathModel.replace(/\/{/g, '/:').replace(/}/g, '');
|
|
145
153
|
}
|
|
146
154
|
static swaggerTypeToJS(type, itemsType = 'any') {
|
|
147
|
-
return
|
|
148
|
-
|
|
149
|
-
|
|
155
|
+
return type === 'integer'
|
|
156
|
+
? 'number'
|
|
157
|
+
: type === 'array'
|
|
158
|
+
? !itemsType
|
|
159
|
+
? 'any'
|
|
160
|
+
: `${this.swaggerTypeToJS(itemsType)}[]`
|
|
161
|
+
: type === 'file'
|
|
162
|
+
? 'any'
|
|
163
|
+
: type;
|
|
150
164
|
}
|
|
151
165
|
static getObjectDefinition(ref, swg, deep = 0) {
|
|
152
166
|
if (deep == 1)
|
|
@@ -157,7 +171,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
157
171
|
}
|
|
158
172
|
let res = '';
|
|
159
173
|
ref = ref.replace('#/', '').replace(/\//g, '.');
|
|
160
|
-
let obj = _.get(swg, ref);
|
|
174
|
+
let obj = (_.get(swg, ref));
|
|
161
175
|
// if (obj.properties.viaAgentViaGroupDTOs && !getObjectDefinition.prototype.once) {
|
|
162
176
|
// console.log('============================================================')
|
|
163
177
|
// console.log('obj', obj)
|
|
@@ -165,24 +179,46 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
165
179
|
// getObjectDefinition.prototype.once = true;
|
|
166
180
|
_.forOwn(obj.properties, (v, k) => {
|
|
167
181
|
// console.log(obj)
|
|
168
|
-
if (v.$ref && typeof v.$ref ===
|
|
169
|
-
res +=
|
|
182
|
+
if (v.$ref && typeof v.$ref === 'string') {
|
|
183
|
+
res +=
|
|
184
|
+
k + ':{' + this.getObjectDefinition(v.$ref, swg, deep++) + '};\n';
|
|
170
185
|
}
|
|
171
|
-
else if (v.schema &&
|
|
172
|
-
|
|
186
|
+
else if (v.schema &&
|
|
187
|
+
v.schema.$ref &&
|
|
188
|
+
typeof v.schema.$ref === 'string') {
|
|
189
|
+
res +=
|
|
190
|
+
k +
|
|
191
|
+
':{' +
|
|
192
|
+
this.getObjectDefinition(v.schema.$ref, swg, deep++) +
|
|
193
|
+
'};\n';
|
|
173
194
|
}
|
|
174
|
-
else if (v.items &&
|
|
175
|
-
|
|
195
|
+
else if (v.items &&
|
|
196
|
+
v.items.$ref &&
|
|
197
|
+
typeof v.items.$ref === 'string' &&
|
|
198
|
+
v.type &&
|
|
199
|
+
v.type === 'array') {
|
|
200
|
+
res +=
|
|
201
|
+
k +
|
|
202
|
+
':{' +
|
|
203
|
+
this.getObjectDefinition(v.items.$ref, swg, deep++) +
|
|
204
|
+
'}[];\n';
|
|
176
205
|
// console.log('make love here')
|
|
177
206
|
}
|
|
178
|
-
else if (v.items && v.items.$ref && typeof v.items.$ref ===
|
|
179
|
-
res +=
|
|
207
|
+
else if (v.items && v.items.$ref && typeof v.items.$ref === 'string') {
|
|
208
|
+
res +=
|
|
209
|
+
k +
|
|
210
|
+
':{' +
|
|
211
|
+
this.getObjectDefinition(v.items.$ref, swg, deep++) +
|
|
212
|
+
'};\n';
|
|
180
213
|
}
|
|
181
214
|
else {
|
|
182
|
-
let isRequired =
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
215
|
+
let isRequired = obj.required &&
|
|
216
|
+
obj.required instanceof Array &&
|
|
217
|
+
obj.required.filter(o => o === k).length > 0;
|
|
218
|
+
let type = v.enum && v.enum instanceof Array && v.enum.length > 0
|
|
219
|
+
? v.enum.map(e => '"' + e + '"').join('|')
|
|
220
|
+
: this.swaggerTypeToJS(v.type, v.items ? v.items.type : 'any');
|
|
221
|
+
res += k + (!isRequired ? '?' : '') + ':' + type + ';\n';
|
|
186
222
|
}
|
|
187
223
|
});
|
|
188
224
|
// console.log('res', res)
|
|
@@ -203,7 +239,8 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
203
239
|
let pathes = {};
|
|
204
240
|
_.forOwn(swg.paths, (v, k) => {
|
|
205
241
|
_.forOwn(v, (v2, k2) => {
|
|
206
|
-
if (_.isArray(v2.tags) &&
|
|
242
|
+
if (_.isArray(v2.tags) &&
|
|
243
|
+
v2.tags.filter(f => f === tag.name).length > 0) {
|
|
207
244
|
let resp = v2.responses['200'] && v2.responses['200'].schema;
|
|
208
245
|
// if (resp) {
|
|
209
246
|
// TODO response handling
|
|
@@ -211,8 +248,10 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
211
248
|
if (pathes[k] === void 0)
|
|
212
249
|
pathes[k] = {}; // @ts-ignore
|
|
213
250
|
let type = this.getResponseType(resp, swg);
|
|
214
|
-
if (type.length > 3 &&
|
|
215
|
-
|
|
251
|
+
if (type.length > 3 &&
|
|
252
|
+
type.charAt(type.length - 1) === ']' &&
|
|
253
|
+
type.charAt(type.length - 2) === '[' &&
|
|
254
|
+
!pathes[k]['array']) {
|
|
216
255
|
pathes[k]['array'] = type;
|
|
217
256
|
}
|
|
218
257
|
else if (k2 !== 'delete' && !pathes[k]['single']) {
|
|
@@ -232,7 +271,7 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
232
271
|
singleModelType: !v['single'] ? 'any' : v['single'],
|
|
233
272
|
multipleModelType: !v['array'] ? 'any' : v['array'],
|
|
234
273
|
queryParamsType: 'any',
|
|
235
|
-
pathParamsType: 'any'
|
|
274
|
+
pathParamsType: 'any',
|
|
236
275
|
});
|
|
237
276
|
});
|
|
238
277
|
pathResources.forEach(p => {
|
|
@@ -255,12 +294,16 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
255
294
|
static getResponseType(o, swg) {
|
|
256
295
|
let res = '{} | any';
|
|
257
296
|
if (o && o.$ref && typeof o.$ref === 'string' && o.$ref.trim() !== '') {
|
|
258
|
-
res =
|
|
297
|
+
res = '{' + this.getObjectDefinition(o.$ref, swg) + '}';
|
|
259
298
|
// console.log('I am object', o.$ref)
|
|
260
299
|
}
|
|
261
|
-
else if (o &&
|
|
262
|
-
|
|
263
|
-
|
|
300
|
+
else if (o &&
|
|
301
|
+
o.type === 'array' &&
|
|
302
|
+
o.items &&
|
|
303
|
+
o.items.$ref &&
|
|
304
|
+
typeof o.items.$ref === 'string' &&
|
|
305
|
+
o.items.$ref.trim() !== '') {
|
|
306
|
+
res = '{' + this.getObjectDefinition(o.items.$ref, swg) + '}[]';
|
|
264
307
|
// console.log('I am array ', o.items.$ref)
|
|
265
308
|
}
|
|
266
309
|
// console.log('============================================================')
|
|
@@ -398,6 +441,85 @@ class HelpersSwagger extends CoreHelpers {
|
|
|
398
441
|
/* */
|
|
399
442
|
/* */
|
|
400
443
|
/* */
|
|
444
|
+
/* */
|
|
445
|
+
/* */
|
|
446
|
+
/* */
|
|
447
|
+
/* */
|
|
448
|
+
/* */
|
|
449
|
+
/* */
|
|
450
|
+
/* */
|
|
451
|
+
/* */
|
|
452
|
+
/* */
|
|
453
|
+
/* */
|
|
454
|
+
/* */
|
|
455
|
+
/* */
|
|
456
|
+
/* */
|
|
457
|
+
/* */
|
|
458
|
+
/* */
|
|
459
|
+
/* */
|
|
460
|
+
/* */
|
|
461
|
+
/* */
|
|
462
|
+
/* */
|
|
463
|
+
/* */
|
|
464
|
+
/* */
|
|
465
|
+
/* */
|
|
466
|
+
/* */
|
|
467
|
+
/* */
|
|
468
|
+
/* */
|
|
469
|
+
/* */
|
|
470
|
+
/* */
|
|
471
|
+
/* */
|
|
472
|
+
/* */
|
|
473
|
+
/* */
|
|
474
|
+
/* */
|
|
475
|
+
/* */
|
|
476
|
+
/* */
|
|
477
|
+
/* */
|
|
478
|
+
/* */
|
|
479
|
+
/* */
|
|
480
|
+
/* */
|
|
481
|
+
/* */
|
|
482
|
+
/* */
|
|
483
|
+
/* */
|
|
484
|
+
/* */
|
|
485
|
+
/* */
|
|
486
|
+
/* */
|
|
487
|
+
/* */
|
|
488
|
+
/* */
|
|
489
|
+
/* */
|
|
490
|
+
/* */
|
|
491
|
+
/* */
|
|
492
|
+
/* */
|
|
493
|
+
/* */
|
|
494
|
+
/* */
|
|
495
|
+
/* */
|
|
496
|
+
/* */
|
|
497
|
+
/* */
|
|
498
|
+
/* */
|
|
499
|
+
/* */
|
|
500
|
+
/* */
|
|
501
|
+
/* */
|
|
502
|
+
/* */
|
|
503
|
+
/* */
|
|
504
|
+
/* */
|
|
505
|
+
/* */
|
|
506
|
+
/* */
|
|
507
|
+
/* */
|
|
508
|
+
/* */
|
|
509
|
+
/* */
|
|
510
|
+
/* */
|
|
511
|
+
/* */
|
|
512
|
+
/* */
|
|
513
|
+
/* */
|
|
514
|
+
/* */
|
|
515
|
+
/* */
|
|
516
|
+
/* */
|
|
517
|
+
/* */
|
|
518
|
+
/* */
|
|
519
|
+
/* */
|
|
520
|
+
/* */
|
|
521
|
+
/* */
|
|
522
|
+
/* */
|
|
401
523
|
static { this.count1 = 0; }
|
|
402
524
|
static recreateSummary(summary) {
|
|
403
525
|
// if (!summary) {
|