ng2-rest-swagger-generator 21.0.11 → 21.0.12
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/package.json +1 -1
- package/browser-prod/README.md +24 -0
- package/browser-prod/fesm2022/ng2-rest-swagger-generator-browser.mjs +416 -0
- package/browser-prod/fesm2022/ng2-rest-swagger-generator-browser.mjs.map +1 -0
- package/browser-prod/types/ng2-rest-swagger-generator-browser.d.ts +219 -0
- package/lib/build-info._auto-generated_.d.ts +5 -1
- package/lib/build-info._auto-generated_.js +6 -2
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/env/env.angular-node-app.d.ts +30 -30
- package/lib/env/env.angular-node-app.js +32 -32
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +30 -30
- package/lib/env/env.docs-webapp.js +32 -32
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +30 -30
- package/lib/env/env.electron-app.js +32 -32
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +30 -30
- package/lib/env/env.mobile-app.js +32 -32
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +30 -30
- package/lib/env/env.npm-lib-and-cli-tool.js +32 -32
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +30 -30
- package/lib/env/env.vscode-plugin.js +32 -32
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/index._auto-generated_.js +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib-prod/build-info._auto-generated_.d.ts +24 -0
- package/lib-prod/build-info._auto-generated_.js +30 -0
- package/lib-prod/build-info._auto-generated_.js.map +1 -0
- package/lib-prod/env/env.angular-node-app.d.ts +64 -0
- package/lib-prod/env/env.angular-node-app.js +71 -0
- package/lib-prod/env/env.angular-node-app.js.map +1 -0
- package/lib-prod/env/env.docs-webapp.d.ts +64 -0
- package/lib-prod/env/env.docs-webapp.js +71 -0
- package/lib-prod/env/env.docs-webapp.js.map +1 -0
- package/lib-prod/env/env.electron-app.d.ts +64 -0
- package/lib-prod/env/env.electron-app.js +71 -0
- package/lib-prod/env/env.electron-app.js.map +1 -0
- package/lib-prod/env/env.mobile-app.d.ts +64 -0
- package/lib-prod/env/env.mobile-app.js +71 -0
- package/lib-prod/env/env.mobile-app.js.map +1 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.d.ts +64 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +71 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js.map +1 -0
- package/lib-prod/env/env.vscode-plugin.d.ts +64 -0
- package/lib-prod/env/env.vscode-plugin.js +71 -0
- package/lib-prod/env/env.vscode-plugin.js.map +1 -0
- package/lib-prod/env/index.d.ts +6 -0
- package/lib-prod/env/index.js +23 -0
- package/lib-prod/env/index.js.map +1 -0
- package/lib-prod/helpers.d.ts +59 -0
- package/lib-prod/helpers.js +397 -0
- package/lib-prod/helpers.js.map +1 -0
- package/lib-prod/index._auto-generated_.d.ts +0 -0
- package/lib-prod/index._auto-generated_.js +6 -0
- package/lib-prod/index._auto-generated_.js.map +1 -0
- package/lib-prod/index.d.ts +1 -0
- package/lib-prod/index.js +18 -0
- package/lib-prod/index.js.map +1 -0
- package/lib-prod/models.d.ts +163 -0
- package/lib-prod/models.js +4 -0
- package/lib-prod/models.js.map +1 -0
- package/package.json +1 -1
- package/tmp-environment.json +8 -4
- package/websql/package.json +1 -1
- package/websql-prod/README.md +24 -0
- package/websql-prod/fesm2022/ng2-rest-swagger-generator-websql.mjs +415 -0
- package/websql-prod/fesm2022/ng2-rest-swagger-generator-websql.mjs.map +1 -0
- package/websql-prod/types/ng2-rest-swagger-generator-websql.d.ts +219 -0
package/tmp-environment.json
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
"container": {
|
|
9
9
|
"only": []
|
|
10
10
|
},
|
|
11
|
-
"ports": {
|
|
11
|
+
"ports": {
|
|
12
|
+
"ngNormalAppPort": 4247,
|
|
13
|
+
"ngWebsqlAppPort": 4248,
|
|
14
|
+
"nodeBeAppPort": 4121
|
|
15
|
+
},
|
|
12
16
|
"init": {},
|
|
13
17
|
"build": {
|
|
14
18
|
"pwa": {},
|
|
@@ -26,12 +30,12 @@
|
|
|
26
30
|
"releaseType": "manual",
|
|
27
31
|
"targetArtifact": "npm-lib-and-cli-tool",
|
|
28
32
|
"envName": "__",
|
|
29
|
-
"resolvedNewVersion": "19.0.
|
|
33
|
+
"resolvedNewVersion": "19.0.21"
|
|
30
34
|
},
|
|
31
35
|
"copyToManager": {},
|
|
32
36
|
"buildInfo": {
|
|
33
|
-
"date": "2025-05-
|
|
34
|
-
"hash": "
|
|
37
|
+
"date": "2025-05-28T01:49:52.000Z",
|
|
38
|
+
"hash": "12c13493fcb2fe91f2de2d284f9d37175b18d9c8"
|
|
35
39
|
},
|
|
36
40
|
"currentProjectName": "ng2-rest-swagger-generator",
|
|
37
41
|
"currentProjectType": "isomorphic-lib",
|
package/websql/package.json
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# MyLib
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.2.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project my-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project my-lib`.
|
|
8
|
+
> Note: Don't forget to add `--project my-lib` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build my-lib` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build my-lib`, go to the dist folder `cd dist/my-lib` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test my-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { CoreHelpers, _ } from 'tnp-core/websql-prod';
|
|
2
|
+
|
|
3
|
+
class HelpersSwagger extends CoreHelpers {
|
|
4
|
+
static { this.SYMBOL = {
|
|
5
|
+
INDEX_SWG: Symbol(),
|
|
6
|
+
OUTPUT_FOLDER: Symbol()
|
|
7
|
+
}; }
|
|
8
|
+
static preparePaths(apis, outputBase) {
|
|
9
|
+
this.output = `${process.cwd()}/${outputBase}`;
|
|
10
|
+
this.apis = apis;
|
|
11
|
+
}
|
|
12
|
+
static prepareModel(swg, indexSwg, isHttpsEnable) {
|
|
13
|
+
swg[this.SYMBOL.INDEX_SWG] = indexSwg;
|
|
14
|
+
swg.host = swg.host && (isHttpsEnable ? 'https' : 'http') + `://${swg.host.replace(/:[0-9]*/g, '')}`;
|
|
15
|
+
if (!swg.basePath) {
|
|
16
|
+
swg.basePath = '';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/* */
|
|
20
|
+
/* */
|
|
21
|
+
/* */
|
|
22
|
+
/* */
|
|
23
|
+
/* */
|
|
24
|
+
/* */
|
|
25
|
+
/* */
|
|
26
|
+
/* */
|
|
27
|
+
/* */
|
|
28
|
+
/* */
|
|
29
|
+
/* */
|
|
30
|
+
/* */
|
|
31
|
+
/* */
|
|
32
|
+
/* */
|
|
33
|
+
/* */
|
|
34
|
+
/* */
|
|
35
|
+
/* */
|
|
36
|
+
/* */
|
|
37
|
+
/* */
|
|
38
|
+
/* */
|
|
39
|
+
/* */
|
|
40
|
+
/* */
|
|
41
|
+
static get serviceFromTag() {
|
|
42
|
+
const self = this;
|
|
43
|
+
return {
|
|
44
|
+
allClassNames() {
|
|
45
|
+
const names = [];
|
|
46
|
+
self.apis.map(swg => {
|
|
47
|
+
swg.tags.forEach(tag => {
|
|
48
|
+
names.push(self.serviceFromTag.className(swg, tag));
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
return names;
|
|
52
|
+
},
|
|
53
|
+
className(swg, tag) {
|
|
54
|
+
const groupFolderName = self.groupFromJSON.folderName(swg);
|
|
55
|
+
// console.log('groupFolderName', groupFolderName)
|
|
56
|
+
const className = _.upperFirst(_.camelCase(tag.name)) + 'Service';
|
|
57
|
+
return `${groupFolderName}${className.replace(/\//g, '')}`;
|
|
58
|
+
},
|
|
59
|
+
absoluteFilePath(swg, tag) {
|
|
60
|
+
return `${self.absolutePath.PathFolder_services_groupName(swg)}/${self.serviceFromTag.className(swg, tag)}.ts`;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
static get endpoints() {
|
|
65
|
+
return this.apis.map(swg => {
|
|
66
|
+
return `${this.groupFromJSON.folderName(swg)}:'${swg.host}'`;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
static get absolutePath() {
|
|
70
|
+
const self = this;
|
|
71
|
+
return {
|
|
72
|
+
get output() {
|
|
73
|
+
return self.output;
|
|
74
|
+
},
|
|
75
|
+
get PathFile_index_ts() {
|
|
76
|
+
const APIpath = self.output;
|
|
77
|
+
return `${APIpath}/index.ts`;
|
|
78
|
+
},
|
|
79
|
+
get PathFile_module_ts() {
|
|
80
|
+
const APIpath = self.output;
|
|
81
|
+
return `${APIpath}/module.ts`;
|
|
82
|
+
},
|
|
83
|
+
get PathFolder_services() {
|
|
84
|
+
const APIpath = self.output;
|
|
85
|
+
return `${APIpath}/services`;
|
|
86
|
+
},
|
|
87
|
+
get PathFile_services_index_ts() {
|
|
88
|
+
return `${self.absolutePath.PathFolder_services}/index.ts`;
|
|
89
|
+
},
|
|
90
|
+
PathFolder_services_groupName(swg) {
|
|
91
|
+
const groupFolderName = self.groupFromJSON.folderName(swg);
|
|
92
|
+
// console.log('groupFolderName', groupFolderName)
|
|
93
|
+
return `${self.absolutePath.PathFolder_services}/${groupFolderName}`;
|
|
94
|
+
},
|
|
95
|
+
PathFile_services_groupName_index_ts(swg) {
|
|
96
|
+
return `${self.absolutePath.PathFolder_services_groupName(swg)}/index.ts`;
|
|
97
|
+
},
|
|
98
|
+
PathFile_services_groupNAme_serviceName_ts(swg, tag) {
|
|
99
|
+
const serviceFileName = self.serviceFromTag.className(swg, tag);
|
|
100
|
+
return `${self.absolutePath.PathFolder_services_groupName(swg)}/${serviceFileName}.ts`;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
static get groupFromJSON() {
|
|
105
|
+
const self = this;
|
|
106
|
+
return {
|
|
107
|
+
get allGroupNames() {
|
|
108
|
+
const names = [];
|
|
109
|
+
self.apis.map(swg => {
|
|
110
|
+
names.push(self.groupFromJSON.folderName(swg));
|
|
111
|
+
});
|
|
112
|
+
return names;
|
|
113
|
+
},
|
|
114
|
+
folderName(swg) {
|
|
115
|
+
const basePath = swg.basePath;
|
|
116
|
+
const index = swg[self.SYMBOL.INDEX_SWG];
|
|
117
|
+
return _.upperFirst(_.camelCase(basePath.trim() === '' ? `json${index}` : basePath));
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
static findTags(swg) {
|
|
122
|
+
const tags = [];
|
|
123
|
+
Object.keys(swg.paths).forEach(p => {
|
|
124
|
+
Object.keys(swg.paths[p]).forEach(m => {
|
|
125
|
+
const a = swg.paths[p][m];
|
|
126
|
+
if (_.isArray(a.tags)) {
|
|
127
|
+
a.tags.forEach(tag => {
|
|
128
|
+
if (tags.filter(({ name }) => name === tag).length === 0) { // @ts-ignore
|
|
129
|
+
tags.push({ name: tag });
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
return tags;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* To generate get/books/{id} => get_books__id_
|
|
139
|
+
*/
|
|
140
|
+
static cleanPath(path) {
|
|
141
|
+
return path.replace(/{/g, "_").replace(/}/g, "_").replace(/\//g, "_").replace(/-/g, "_");
|
|
142
|
+
}
|
|
143
|
+
static cleanPathModel(pathModel) {
|
|
144
|
+
return pathModel.replace(/\/{/g, '/:').replace(/}/g, '');
|
|
145
|
+
}
|
|
146
|
+
static swaggerTypeToJS(type, itemsType = 'any') {
|
|
147
|
+
return (type === 'integer') ? 'number'
|
|
148
|
+
: (type === 'array') ? !itemsType ? 'any' : `${this.swaggerTypeToJS(itemsType)}[]`
|
|
149
|
+
: (type === 'file') ? 'any' : type;
|
|
150
|
+
}
|
|
151
|
+
static getObjectDefinition(ref, swg, deep = 0) {
|
|
152
|
+
if (deep == 1)
|
|
153
|
+
return '';
|
|
154
|
+
if (!ref) {
|
|
155
|
+
console.log('Bad json $ref inside swagger');
|
|
156
|
+
return '';
|
|
157
|
+
}
|
|
158
|
+
let res = '';
|
|
159
|
+
ref = ref.replace('#/', '').replace(/\//g, '.');
|
|
160
|
+
let obj = _.get(swg, ref);
|
|
161
|
+
// if (obj.properties.viaAgentViaGroupDTOs && !getObjectDefinition.prototype.once) {
|
|
162
|
+
// console.log('============================================================')
|
|
163
|
+
// console.log('obj', obj)
|
|
164
|
+
// console.log('------------------------------------------------------------')
|
|
165
|
+
// getObjectDefinition.prototype.once = true;
|
|
166
|
+
_.forOwn(obj.properties, (v, k) => {
|
|
167
|
+
// console.log(obj)
|
|
168
|
+
if (v.$ref && typeof v.$ref === "string") {
|
|
169
|
+
res += k + ":{" + this.getObjectDefinition(v.$ref, swg, deep++) + "};\n";
|
|
170
|
+
}
|
|
171
|
+
else if (v.schema && v.schema.$ref && typeof v.schema.$ref === "string") {
|
|
172
|
+
res += k + ":{" + this.getObjectDefinition(v.schema.$ref, swg, deep++) + "};\n";
|
|
173
|
+
}
|
|
174
|
+
else if (v.items && v.items.$ref && typeof v.items.$ref === "string" && v.type && v.type === 'array') {
|
|
175
|
+
res += k + ":{" + this.getObjectDefinition(v.items.$ref, swg, deep++) + "}[];\n";
|
|
176
|
+
// console.log('make love here')
|
|
177
|
+
}
|
|
178
|
+
else if (v.items && v.items.$ref && typeof v.items.$ref === "string") {
|
|
179
|
+
res += k + ":{" + this.getObjectDefinition(v.items.$ref, swg, deep++) + "};\n";
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
let isRequired = (obj.required && obj.required instanceof Array && obj.required.filter(o => o === k).length > 0);
|
|
183
|
+
let type = (v.enum && v.enum instanceof Array && v.enum.length > 0)
|
|
184
|
+
? v.enum.map(e => '"' + e + '"').join('|') : this.swaggerTypeToJS(v.type, v.items ? v.items.type : 'any');
|
|
185
|
+
res += k + (!isRequired ? '?' : "") + ":" + type + ";\n";
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
// console.log('res', res)
|
|
189
|
+
// }
|
|
190
|
+
return res;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* private pathes = {
|
|
194
|
+
* get_all_companies: new SimpleResource<
|
|
195
|
+
* string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model),
|
|
196
|
+
* get_byid_companies: new SimpleResource<
|
|
197
|
+
* string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model)
|
|
198
|
+
* }
|
|
199
|
+
*/
|
|
200
|
+
static getAngularPrivatePathesByTag(swg, tag) {
|
|
201
|
+
let res = [];
|
|
202
|
+
let base = swg.basePath.replace('/', '');
|
|
203
|
+
let pathes = {};
|
|
204
|
+
_.forOwn(swg.paths, (v, k) => {
|
|
205
|
+
_.forOwn(v, (v2, k2) => {
|
|
206
|
+
if (_.isArray(v2.tags) && v2.tags.filter(f => f === tag.name).length > 0) {
|
|
207
|
+
let resp = v2.responses['200'] && v2.responses['200'].schema;
|
|
208
|
+
// if (resp) {
|
|
209
|
+
// TODO response handling
|
|
210
|
+
// console.log('resp',resp);
|
|
211
|
+
if (pathes[k] === void 0)
|
|
212
|
+
pathes[k] = {}; // @ts-ignore
|
|
213
|
+
let type = this.getResponseType(resp, swg);
|
|
214
|
+
if (type.length > 3 && type.charAt(type.length - 1) === ']' && type.charAt(type.length - 2) === '['
|
|
215
|
+
&& !pathes[k]['array']) {
|
|
216
|
+
pathes[k]['array'] = type;
|
|
217
|
+
}
|
|
218
|
+
else if (k2 !== 'delete' && !pathes[k]['single']) {
|
|
219
|
+
pathes[k]['single'] = type;
|
|
220
|
+
}
|
|
221
|
+
// }
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
let pathResources = [];
|
|
226
|
+
_.forOwn(pathes, (v, p) => {
|
|
227
|
+
// console.log(`${p} - ${JSON.stringify(v)}`);
|
|
228
|
+
pathResources.push({
|
|
229
|
+
clean_path: this.cleanPath(p),
|
|
230
|
+
model: this.cleanPathModel(p),
|
|
231
|
+
endpoint: swg.basePath,
|
|
232
|
+
singleModelType: !v['single'] ? 'any' : v['single'],
|
|
233
|
+
multipleModelType: !v['array'] ? 'any' : v['array'],
|
|
234
|
+
queryParamsType: 'any',
|
|
235
|
+
pathParamsType: 'any'
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
pathResources.forEach(p => {
|
|
239
|
+
res.push(`${p.clean_path}: new SimpleResource<\n${p.singleModelType},\n${p.multipleModelType}\n>( Ng2RestGenModule.enpointUrls.${this.groupFromJSON.folderName(swg)}, '${p.model}' )`);
|
|
240
|
+
});
|
|
241
|
+
return `private pathes = { \n${res.join(',\n')}\n};`;
|
|
242
|
+
}
|
|
243
|
+
/*
|
|
244
|
+
schema": {
|
|
245
|
+
"type": "array",
|
|
246
|
+
"items": {
|
|
247
|
+
"$ref": "#/definitions/CompanyDTO"
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
"schema": {
|
|
252
|
+
"$ref": "#/definitions/CompanyDTO"
|
|
253
|
+
}
|
|
254
|
+
*/
|
|
255
|
+
static getResponseType(o, swg) {
|
|
256
|
+
let res = '{} | any';
|
|
257
|
+
if (o && o.$ref && typeof o.$ref === 'string' && o.$ref.trim() !== '') {
|
|
258
|
+
res = "{" + this.getObjectDefinition(o.$ref, swg) + "}";
|
|
259
|
+
// console.log('I am object', o.$ref)
|
|
260
|
+
}
|
|
261
|
+
else if (o && o.type === 'array' && o.items && o.items.$ref &&
|
|
262
|
+
typeof o.items.$ref === 'string' && o.items.$ref.trim() !== '') {
|
|
263
|
+
res = "{" + this.getObjectDefinition(o.items.$ref, swg) + "}[]";
|
|
264
|
+
// console.log('I am array ', o.items.$ref)
|
|
265
|
+
}
|
|
266
|
+
// console.log('============================================================')
|
|
267
|
+
// console.log('type', res)
|
|
268
|
+
// console.log('------------------------------------------------------------')
|
|
269
|
+
return res;
|
|
270
|
+
}
|
|
271
|
+
/* */
|
|
272
|
+
/* */
|
|
273
|
+
/* */
|
|
274
|
+
/* */
|
|
275
|
+
/* */
|
|
276
|
+
/* */
|
|
277
|
+
/* */
|
|
278
|
+
/* */
|
|
279
|
+
/* */
|
|
280
|
+
/* */
|
|
281
|
+
/* */
|
|
282
|
+
/* */
|
|
283
|
+
/* */
|
|
284
|
+
/* */
|
|
285
|
+
/* */
|
|
286
|
+
/* */
|
|
287
|
+
/* */
|
|
288
|
+
/* */
|
|
289
|
+
/* */
|
|
290
|
+
/* */
|
|
291
|
+
/* */
|
|
292
|
+
/* */
|
|
293
|
+
/* */
|
|
294
|
+
/* */
|
|
295
|
+
/* */
|
|
296
|
+
/* */
|
|
297
|
+
/* */
|
|
298
|
+
/* */
|
|
299
|
+
/* */
|
|
300
|
+
/* */
|
|
301
|
+
/* */
|
|
302
|
+
/* */
|
|
303
|
+
/* */
|
|
304
|
+
/* */
|
|
305
|
+
/* */
|
|
306
|
+
/* */
|
|
307
|
+
/* */
|
|
308
|
+
/* */
|
|
309
|
+
/* */
|
|
310
|
+
/* */
|
|
311
|
+
/* */
|
|
312
|
+
/* */
|
|
313
|
+
/* */
|
|
314
|
+
/* */
|
|
315
|
+
/* */
|
|
316
|
+
/* */
|
|
317
|
+
/* */
|
|
318
|
+
/* */
|
|
319
|
+
/* */
|
|
320
|
+
/* */
|
|
321
|
+
/* */
|
|
322
|
+
/* */
|
|
323
|
+
/* */
|
|
324
|
+
/* */
|
|
325
|
+
/* */
|
|
326
|
+
/* */
|
|
327
|
+
/* */
|
|
328
|
+
/* */
|
|
329
|
+
/* */
|
|
330
|
+
/* */
|
|
331
|
+
/* */
|
|
332
|
+
/* */
|
|
333
|
+
/* */
|
|
334
|
+
/* */
|
|
335
|
+
/* */
|
|
336
|
+
/* */
|
|
337
|
+
/* */
|
|
338
|
+
/* */
|
|
339
|
+
/* */
|
|
340
|
+
/* */
|
|
341
|
+
/* */
|
|
342
|
+
/* */
|
|
343
|
+
/* */
|
|
344
|
+
/* */
|
|
345
|
+
/* */
|
|
346
|
+
/* */
|
|
347
|
+
/* */
|
|
348
|
+
/* */
|
|
349
|
+
/* */
|
|
350
|
+
/* */
|
|
351
|
+
/* */
|
|
352
|
+
/* */
|
|
353
|
+
/* */
|
|
354
|
+
/* */
|
|
355
|
+
/* */
|
|
356
|
+
/* */
|
|
357
|
+
/* */
|
|
358
|
+
/* */
|
|
359
|
+
/* */
|
|
360
|
+
/* */
|
|
361
|
+
/* */
|
|
362
|
+
/* */
|
|
363
|
+
/* */
|
|
364
|
+
/* */
|
|
365
|
+
/* */
|
|
366
|
+
/* */
|
|
367
|
+
/* */
|
|
368
|
+
/* */
|
|
369
|
+
/* */
|
|
370
|
+
/* */
|
|
371
|
+
/* */
|
|
372
|
+
/* */
|
|
373
|
+
/* */
|
|
374
|
+
/* */
|
|
375
|
+
/* */
|
|
376
|
+
/* */
|
|
377
|
+
/* */
|
|
378
|
+
/* */
|
|
379
|
+
/* */
|
|
380
|
+
/* */
|
|
381
|
+
/* */
|
|
382
|
+
/* */
|
|
383
|
+
/* */
|
|
384
|
+
/* */
|
|
385
|
+
/* */
|
|
386
|
+
/* */
|
|
387
|
+
/* */
|
|
388
|
+
/* */
|
|
389
|
+
/* */
|
|
390
|
+
/* */
|
|
391
|
+
/* */
|
|
392
|
+
/* */
|
|
393
|
+
/* */
|
|
394
|
+
/* */
|
|
395
|
+
/* */
|
|
396
|
+
/* */
|
|
397
|
+
/* */
|
|
398
|
+
/* */
|
|
399
|
+
/* */
|
|
400
|
+
/* */
|
|
401
|
+
static { this.count1 = 0; }
|
|
402
|
+
static recreateSummary(summary) {
|
|
403
|
+
// if (!summary) {
|
|
404
|
+
// return 'SummaryExample' + (count1++)
|
|
405
|
+
// }
|
|
406
|
+
return summary;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Generated bundle index. Do not edit.
|
|
412
|
+
*/
|
|
413
|
+
|
|
414
|
+
export { HelpersSwagger };
|
|
415
|
+
//# sourceMappingURL=ng2-rest-swagger-generator-websql.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng2-rest-swagger-generator-websql.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/ng2-rest-swagger-generator/projects/ng2-rest-swagger-generator/src/lib/helpers.ts","../../../tmp-libs-for-dist-websql-prod/ng2-rest-swagger-generator/projects/ng2-rest-swagger-generator/src/ng2-rest-swagger-generator-websql.ts"],"sourcesContent":["import {\n path,\n/* */\n/* */\n \n _\n} from 'tnp-core/websql-prod';\nimport { Models } from './models';\nimport { CoreHelpers as TnpHelpers } from 'tnp-core/websql-prod';\nimport { Helpers } from 'tnp-helpers/websql-prod';\n\n\nexport class HelpersSwagger extends TnpHelpers {\n\n static SYMBOL = {\n INDEX_SWG: Symbol(),\n OUTPUT_FOLDER: Symbol()\n }\n\n private static output: string;\n private static apis: Models.Swagger.SwaggerModel[];\n static preparePaths(apis: Models.Swagger.SwaggerModel[], outputBase: string) {\n this.output = `${process.cwd()}/${outputBase}`\n this.apis = apis;\n }\n\n static prepareModel(swg: Models.Swagger.SwaggerModel, indexSwg: number, isHttpsEnable: boolean) {\n swg[this.SYMBOL.INDEX_SWG] = indexSwg;\n\n swg.host = swg.host && (isHttpsEnable ? 'https' : 'http') + `://${swg.host.replace(/:[0-9]*/g, '')}`\n if (!swg.basePath) {\n swg.basePath = ''\n }\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n static get serviceFromTag() {\n const self = this;\n\n\n return {\n allClassNames() {\n const names = []\n self.apis.map(swg => {\n swg.tags.forEach(tag => { // @ts-ignore\n names.push(self.serviceFromTag.className(swg, tag))\n })\n })\n return names;\n },\n className(swg: Models.Swagger.SwaggerModel, tag: Models.Swagger.SwaggerTag) {\n const groupFolderName = self.groupFromJSON.folderName(swg)\n // console.log('groupFolderName', groupFolderName)\n const className = _.upperFirst(_.camelCase(tag.name)) + 'Service';\n return `${groupFolderName}${className.replace(/\\//g, '')}`;\n },\n absoluteFilePath(swg: Models.Swagger.SwaggerModel, tag: Models.Swagger.SwaggerTag) {\n\n return `${self.absolutePath.PathFolder_services_groupName(swg)}/${self.serviceFromTag.className(swg, tag)}.ts`;\n }\n }\n }\n\n static get endpoints() {\n return this.apis.map(swg => {\n return `${this.groupFromJSON.folderName(swg)}:'${swg.host}'`\n })\n }\n\n\n\n static get absolutePath() {\n const self = this;\n\n\n return {\n get output() {\n return self.output;\n },\n\n get PathFile_index_ts() {\n const APIpath = self.output;\n return `${APIpath}/index.ts`;\n },\n get PathFile_module_ts() {\n const APIpath = self.output;\n return `${APIpath}/module.ts`;\n },\n\n get PathFolder_services() {\n const APIpath = self.output;\n return `${APIpath}/services`;\n },\n\n get PathFile_services_index_ts() {\n return `${self.absolutePath.PathFolder_services}/index.ts`;\n },\n\n PathFolder_services_groupName(swg: Models.Swagger.SwaggerModel) {\n const groupFolderName = self.groupFromJSON.folderName(swg)\n // console.log('groupFolderName', groupFolderName)\n return `${self.absolutePath.PathFolder_services}/${groupFolderName}`;\n },\n\n PathFile_services_groupName_index_ts(swg: Models.Swagger.SwaggerModel) {\n return `${self.absolutePath.PathFolder_services_groupName(swg)}/index.ts`;\n },\n\n PathFile_services_groupNAme_serviceName_ts(swg: Models.Swagger.SwaggerModel, tag: Models.Swagger.SwaggerTag) {\n const serviceFileName = self.serviceFromTag.className(swg, tag);\n return `${self.absolutePath.PathFolder_services_groupName(swg)}/${serviceFileName}.ts`;\n }\n\n }\n }\n\n static get groupFromJSON() {\n const self = this;\n return {\n get allGroupNames() {\n const names = []\n self.apis.map(swg => { // @ts-ignore\n names.push(self.groupFromJSON.folderName(swg))\n })\n return names;\n },\n folderName(swg: Models.Swagger.SwaggerModel) {\n const basePath: string = swg.basePath;\n const index: number = swg[self.SYMBOL.INDEX_SWG];\n return _.upperFirst(_.camelCase(basePath.trim() === '' ? `json${index}` : basePath));\n }\n }\n }\n\n static findTags(swg: Models.Swagger.SwaggerModel) {\n const tags = []\n Object.keys(swg.paths).forEach(p => {\n Object.keys(swg.paths[p]).forEach(m => {\n const a = swg.paths[p][m];\n if (_.isArray(a.tags)) {\n a.tags.forEach(tag => {\n if (tags.filter(({ name }) => name === tag).length === 0) { // @ts-ignore\n tags.push({ name: tag })\n }\n });\n }\n })\n })\n return tags;\n }\n\n\n\n\n\n\n /**\n * To generate get/books/{id} => get_books__id_\n */\n static cleanPath(path: string) {\n return path.replace(/{/g, \"_\").replace(/}/g, \"_\").replace(/\\//g, \"_\").replace(/-/g, \"_\");\n }\n\n\n static cleanPathModel(pathModel: string) {\n return pathModel.replace(/\\/{/g, '/:').replace(/}/g, '');\n }\n\n\n static swaggerTypeToJS(type: \"string\" | \"number\" | \"integer\" | \"boolean\" | \"array\" | \"file\", itemsType: any = 'any') {\n return (type === 'integer') ? 'number'\n : (type === 'array') ? !itemsType ? 'any' : `${this.swaggerTypeToJS(itemsType)}[]`\n : (type === 'file') ? 'any' : type;\n }\n\n\n\n static getObjectDefinition(ref: string, swg: Models.Swagger.SwaggerModel, deep = 0): string {\n if (deep == 1) return '';\n if (!ref) {\n console.log('Bad json $ref inside swagger')\n return '';\n }\n let res = '';\n ref = ref.replace('#/', '').replace(/\\//g, '.');\n\n let obj: Models.Swagger.SwaggerDef = <Models.Swagger.SwaggerDef>_.get(swg, ref);\n\n // if (obj.properties.viaAgentViaGroupDTOs && !getObjectDefinition.prototype.once) {\n // console.log('============================================================')\n // console.log('obj', obj)\n // console.log('------------------------------------------------------------')\n // getObjectDefinition.prototype.once = true;\n\n\n\n _.forOwn(obj.properties, (v, k) => {\n // console.log(obj)\n if (v.$ref && typeof v.$ref === \"string\") {\n res += k + \":{\" + this.getObjectDefinition(v.$ref, swg, deep++) + \"};\\n\";\n } else if (v.schema && v.schema.$ref && typeof v.schema.$ref === \"string\") {\n res += k + \":{\" + this.getObjectDefinition(v.schema.$ref, swg, deep++) + \"};\\n\";\n\n } else if (v.items && v.items.$ref && typeof v.items.$ref === \"string\" && v.type && v.type === 'array') {\n res += k + \":{\" + this.getObjectDefinition(v.items.$ref, swg, deep++) + \"}[];\\n\";\n // console.log('make love here')\n\n } else if (v.items && v.items.$ref && typeof v.items.$ref === \"string\") {\n res += k + \":{\" + this.getObjectDefinition(v.items.$ref, swg, deep++) + \"};\\n\";\n } else {\n let isRequired = (obj.required && obj.required instanceof Array && obj.required.filter(o => o === k).length > 0)\n let type = (v.enum && v.enum instanceof Array && v.enum.length > 0)\n ? v.enum.map(e => '\"' + e + '\"').join('|') : this.swaggerTypeToJS(v.type, v.items ? v.items.type : 'any');\n\n res += k + (!isRequired ? '?' : \"\") + \":\" + type + \";\\n\"\n }\n });\n // console.log('res', res)\n // }\n\n return res;\n }\n\n\n\n /**\n * private pathes = {\n * get_all_companies: new SimpleResource<\n * string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model),\n * get_byid_companies: new SimpleResource<\n * string, A, TA, RP extends Object, QP extends Rest.UrlParams>(endpoint, model)\n * }\n */\n static getAngularPrivatePathesByTag(swg: Models.Swagger.SwaggerModel, tag: Models.Swagger.SwaggerTag): string {\n let res: string[] = [];\n let base = swg.basePath.replace('/', '');\n\n let pathes: Object = {};\n _.forOwn(swg.paths, (v, k) => {\n _.forOwn(v, (v2, k2) => {\n if (_.isArray(v2.tags) && v2.tags.filter(f => f === tag.name).length > 0) {\n let resp = v2.responses['200'] && v2.responses['200'].schema;\n\n // if (resp) {\n // TODO response handling\n // console.log('resp',resp);\n if (pathes[k] === void 0) pathes[k] = {}; // @ts-ignore\n let type = this.getResponseType(resp, swg);\n\n if (type.length > 3 && type.charAt(type.length - 1) === ']' && type.charAt(type.length - 2) === '['\n && !pathes[k]['array']) {\n pathes[k]['array'] = type;\n } else if (k2 !== 'delete' && !pathes[k]['single']) {\n pathes[k]['single'] = type;\n }\n // }\n\n\n }\n })\n })\n\n let pathResources: Models.PathResource[] = [];\n\n _.forOwn(pathes, (v, p) => {\n // console.log(`${p} - ${JSON.stringify(v)}`);\n pathResources.push({\n clean_path: this.cleanPath(p),\n model: this.cleanPathModel(p),\n endpoint: swg.basePath,\n singleModelType: !v['single'] ? 'any' : v['single'],\n multipleModelType: !v['array'] ? 'any' : v['array'],\n queryParamsType: 'any',\n pathParamsType: 'any'\n })\n })\n\n\n pathResources.forEach(p => {\n res.push(`${p.clean_path}: new SimpleResource<\\n${p.singleModelType},\\n${p.multipleModelType}\\n>( Ng2RestGenModule.enpointUrls.${this.groupFromJSON.folderName(swg)}, '${p.model}' )`);\n })\n\n return `private pathes = { \\n${res.join(',\\n')}\\n};`\n }\n\n\n /*\n schema\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/CompanyDTO\"\n }\n }\n\n \"schema\": {\n \"$ref\": \"#/definitions/CompanyDTO\"\n }\n */\n\n static getResponseType(o: Models.Swagger.ObjSchema, swg: Models.Swagger.SwaggerModel) {\n let res = '{} | any';\n if (o && o.$ref && typeof o.$ref === 'string' && o.$ref.trim() !== '') {\n res = \"{\" + this.getObjectDefinition(o.$ref, swg) + \"}\";\n // console.log('I am object', o.$ref)\n } else if (o && o.type === 'array' && o.items && o.items.$ref &&\n typeof o.items.$ref === 'string' && o.items.$ref.trim() !== '') {\n res = \"{\" + this.getObjectDefinition(o.items.$ref, swg) + \"}[]\";\n // console.log('I am array ', o.items.$ref)\n }\n // console.log('============================================================')\n // console.log('type', res)\n // console.log('------------------------------------------------------------')\n return res;\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n private static count1 = 0;\n\n static recreateSummary(summary: string) {\n // if (!summary) {\n // return 'SummaryExample' + (count1++)\n // }\n return summary;\n }\n\n\n\n // type Params = { query: any[], path: any[], body: any[] };\n // type ParamsType = { query: string, path: string, body: string };\n\n // export function getSingleParamsTypeForPath(tag: string, swg: SwaggerModel): ParamsType {\n // let res: ParamsType = <ParamsType>{};\n\n // for (let urlpath in swg.paths) {\n\n // for (let methodhttp in swg.paths[urlpath]) {\n // let m = swg.paths[urlpath][methodhttp];\n // if (m.tags.filter(t => t === tag).length === 1) {\n\n // let params: Params = <Params>{};\n // params.query = [];\n // params.path = [];\n // params.body = [];\n\n // if (m.parameters) m.parameters.forEach(param => {\n // if (param.in === 'body') {\n // params.body.push({\n // name: param.name,\n // type: \"{\" + SwaggerHelpers.getObjectDefinition(param.schema.$ref, swg) + \"}\",\n // required: param.required\n // })\n // } else {\n // params[param.in].push({\n // name: param.name,\n // type: SwaggerHelpers.swaggerTypeToJS(param.type),\n // required: param.required\n // })\n // }\n\n // })\n\n // }\n // }\n // }\n\n // return res;\n // }\n\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TnpHelpers"],"mappings":"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"}
|