@devlearning/swagger-generator 1.1.24 → 1.1.25
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/generator.d.ts +2 -0
- package/dist/generator.js +39 -14
- package/dist/generators-writers/angular/api-angular-writer.d.ts +1 -0
- package/dist/generators-writers/angular/api-angular-writer.js +12 -0
- package/package.json +1 -1
- package/src/generator.ts +41 -14
- package/src/generators-writers/angular/api-angular-writer.ts +16 -0
package/dist/generator.d.ts
CHANGED
|
@@ -41,5 +41,7 @@ export declare class Generator {
|
|
|
41
41
|
retrieveNestedObjectsRecursive(swaggerComponent: SwaggerComponent, usedTypes: TypeDto[]): void;
|
|
42
42
|
getNativeType(schema: SwaggerSchema): string;
|
|
43
43
|
getApiNameNormalized(apiName: string): string;
|
|
44
|
+
private getMultipartModelName;
|
|
45
|
+
private getMultipartModelNameForTarget;
|
|
44
46
|
toFirstLetterLowercase(value: string): string;
|
|
45
47
|
}
|
package/dist/generator.js
CHANGED
|
@@ -133,9 +133,9 @@ export class Generator {
|
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
135
|
this._models.push({
|
|
136
|
-
typeName: this.
|
|
136
|
+
typeName: this.getMultipartModelNameForTarget(apiName),
|
|
137
137
|
modelType: 'class',
|
|
138
|
-
name: this.
|
|
138
|
+
name: this.getMultipartModelNameForTarget(apiName),
|
|
139
139
|
properties: this.retrieveSchemaProperties(schema),
|
|
140
140
|
enumValues: [],
|
|
141
141
|
});
|
|
@@ -217,18 +217,33 @@ export class Generator {
|
|
|
217
217
|
});
|
|
218
218
|
if (swaggerMethod.requestBody != null && swaggerMethod.requestBody.content[contentTypeMultipartFormData] != null) {
|
|
219
219
|
const schema = swaggerMethod.requestBody.content[contentTypeMultipartFormData].schema;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
220
|
+
if (schema?.$ref == null && schema?.type === 'object') {
|
|
221
|
+
parameters.unshift({
|
|
222
|
+
name: 'request',
|
|
223
|
+
typeName: this.getMultipartModelNameForTarget(apiName),
|
|
224
|
+
nullable: false,
|
|
225
|
+
isQuery: false,
|
|
226
|
+
isEnum: false,
|
|
227
|
+
isTypeReference: true,
|
|
228
|
+
isNativeType: false,
|
|
229
|
+
isArray: false,
|
|
230
|
+
isVoid: false,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
const type = this.retrieveType(schema);
|
|
235
|
+
parameters.unshift({
|
|
236
|
+
name: 'request',
|
|
237
|
+
typeName: type.typeName,
|
|
238
|
+
nullable: false,
|
|
239
|
+
isQuery: false,
|
|
240
|
+
isEnum: false,
|
|
241
|
+
isTypeReference: type.isTypeReference ?? true,
|
|
242
|
+
isNativeType: type.isNativeType ?? false,
|
|
243
|
+
isArray: type.isArray ?? false,
|
|
244
|
+
isVoid: type.isVoid ?? false,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
232
247
|
}
|
|
233
248
|
else {
|
|
234
249
|
if (swaggerMethod.requestBody != null) {
|
|
@@ -675,6 +690,16 @@ export class Generator {
|
|
|
675
690
|
}
|
|
676
691
|
return normalizedApiName;
|
|
677
692
|
}
|
|
693
|
+
getMultipartModelName(apiName) {
|
|
694
|
+
return Utils.toPascalCase(Utils.getNormalizedApiPathAngular(apiName));
|
|
695
|
+
}
|
|
696
|
+
getMultipartModelNameForTarget(apiName) {
|
|
697
|
+
if (this._commandLineArgs.target === TargetGeneration.Angular) {
|
|
698
|
+
return this.getMultipartModelName(apiName);
|
|
699
|
+
}
|
|
700
|
+
// Preserve pre-existing naming for non-Angular targets.
|
|
701
|
+
return this.getApiNameNormalized(apiName);
|
|
702
|
+
}
|
|
678
703
|
toFirstLetterLowercase(value) {
|
|
679
704
|
return value.charAt(0).toLowerCase() + value.slice(1);
|
|
680
705
|
}
|
|
@@ -41,6 +41,9 @@ export class ApiAngularWriter {
|
|
|
41
41
|
_parameters(api) {
|
|
42
42
|
let parametersString = '';
|
|
43
43
|
api.parameters.forEach(parameter => {
|
|
44
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
44
47
|
const libraryDate = 'moment.Moment';
|
|
45
48
|
const prefixType = parameter.isEnum || !parameter.isNativeType ? 'Models.' : '';
|
|
46
49
|
const typeName = parameter.typeName === 'dateTime' ? libraryDate : `${prefixType}${Normalizator.mapTsTypeToAngular(parameter.typeName)}`;
|
|
@@ -59,6 +62,9 @@ export class ApiAngularWriter {
|
|
|
59
62
|
_queryParametersPreparation(api) {
|
|
60
63
|
let queryParametersPreparation = '';
|
|
61
64
|
api.parameters.forEach(parameter => {
|
|
65
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
62
68
|
if (parameter.isQuery) {
|
|
63
69
|
queryParametersPreparation += this._queryParametersPreparationStatement(parameter);
|
|
64
70
|
}
|
|
@@ -90,6 +96,9 @@ export class ApiAngularWriter {
|
|
|
90
96
|
_queryParameters(api) {
|
|
91
97
|
let queryParameters = '';
|
|
92
98
|
api.parameters.forEach(parameter => {
|
|
99
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
93
102
|
if (parameter.isQuery) {
|
|
94
103
|
queryParameters += this._queryParametersStatement(parameter);
|
|
95
104
|
}
|
|
@@ -119,6 +128,9 @@ export class ApiAngularWriter {
|
|
|
119
128
|
`;
|
|
120
129
|
}
|
|
121
130
|
}
|
|
131
|
+
_isIgnoredAngularParameter(parameter) {
|
|
132
|
+
return parameter.name?.toLowerCase() === 'version';
|
|
133
|
+
}
|
|
122
134
|
_writeFile(apis) {
|
|
123
135
|
const className = this._commandLineArgs.apiClientName || 'ApiAutogeneratedService';
|
|
124
136
|
const apiPre = this._getApiPre(className);
|
package/package.json
CHANGED
package/src/generator.ts
CHANGED
|
@@ -175,9 +175,9 @@ export class Generator {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
this._models.push({
|
|
178
|
-
typeName: this.
|
|
178
|
+
typeName: this.getMultipartModelNameForTarget(apiName),
|
|
179
179
|
modelType: 'class',
|
|
180
|
-
name: this.
|
|
180
|
+
name: this.getMultipartModelNameForTarget(apiName),
|
|
181
181
|
properties: this.retrieveSchemaProperties(schema),
|
|
182
182
|
enumValues: [],
|
|
183
183
|
});
|
|
@@ -264,18 +264,32 @@ export class Generator {
|
|
|
264
264
|
|
|
265
265
|
if (swaggerMethod.requestBody != null && swaggerMethod.requestBody.content[contentTypeMultipartFormData] != null) {
|
|
266
266
|
const schema = swaggerMethod.requestBody.content[contentTypeMultipartFormData].schema;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
267
|
+
if (schema?.$ref == null && schema?.type === 'object') {
|
|
268
|
+
parameters.unshift({
|
|
269
|
+
name: 'request',
|
|
270
|
+
typeName: this.getMultipartModelNameForTarget(apiName),
|
|
271
|
+
nullable: false,
|
|
272
|
+
isQuery: false,
|
|
273
|
+
isEnum: false,
|
|
274
|
+
isTypeReference: true,
|
|
275
|
+
isNativeType: false,
|
|
276
|
+
isArray: false,
|
|
277
|
+
isVoid: false,
|
|
278
|
+
});
|
|
279
|
+
} else {
|
|
280
|
+
const type = this.retrieveType(schema);
|
|
281
|
+
parameters.unshift({
|
|
282
|
+
name: 'request',
|
|
283
|
+
typeName: type.typeName,
|
|
284
|
+
nullable: false,
|
|
285
|
+
isQuery: false,
|
|
286
|
+
isEnum: false,
|
|
287
|
+
isTypeReference: type.isTypeReference ?? true,
|
|
288
|
+
isNativeType: type.isNativeType ?? false,
|
|
289
|
+
isArray: type.isArray ?? false,
|
|
290
|
+
isVoid: type.isVoid ?? false,
|
|
291
|
+
});
|
|
292
|
+
}
|
|
279
293
|
} else {
|
|
280
294
|
if (swaggerMethod.requestBody != null) {
|
|
281
295
|
const type = this.retrieveType(swaggerMethod.requestBody.content[contentTypeApplicationJson].schema);
|
|
@@ -747,6 +761,19 @@ export class Generator {
|
|
|
747
761
|
return normalizedApiName;
|
|
748
762
|
}
|
|
749
763
|
|
|
764
|
+
private getMultipartModelName(apiName: string): string {
|
|
765
|
+
return Utils.toPascalCase(Utils.getNormalizedApiPathAngular(apiName));
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
private getMultipartModelNameForTarget(apiName: string): string {
|
|
769
|
+
if (this._commandLineArgs.target === TargetGeneration.Angular) {
|
|
770
|
+
return this.getMultipartModelName(apiName);
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
// Preserve pre-existing naming for non-Angular targets.
|
|
774
|
+
return this.getApiNameNormalized(apiName);
|
|
775
|
+
}
|
|
776
|
+
|
|
750
777
|
toFirstLetterLowercase(value: string) {
|
|
751
778
|
return value.charAt(0).toLowerCase() + value.slice(1);
|
|
752
779
|
}
|
|
@@ -58,6 +58,10 @@ export class ApiAngularWriter {
|
|
|
58
58
|
let parametersString = '';
|
|
59
59
|
|
|
60
60
|
api.parameters.forEach(parameter => {
|
|
61
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
61
65
|
const libraryDate = 'moment.Moment';
|
|
62
66
|
const prefixType = parameter.isEnum || !parameter.isNativeType ? 'Models.' : '';
|
|
63
67
|
const typeName = parameter.typeName === 'dateTime' ? libraryDate : `${prefixType}${Normalizator.mapTsTypeToAngular(parameter.typeName)}`;
|
|
@@ -83,6 +87,10 @@ export class ApiAngularWriter {
|
|
|
83
87
|
let queryParametersPreparation = '';
|
|
84
88
|
|
|
85
89
|
api.parameters.forEach(parameter => {
|
|
90
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
86
94
|
if (parameter.isQuery) {
|
|
87
95
|
queryParametersPreparation += this._queryParametersPreparationStatement(parameter);
|
|
88
96
|
}
|
|
@@ -115,6 +123,10 @@ export class ApiAngularWriter {
|
|
|
115
123
|
let queryParameters = '';
|
|
116
124
|
|
|
117
125
|
api.parameters.forEach(parameter => {
|
|
126
|
+
if (this._isIgnoredAngularParameter(parameter)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
118
130
|
if (parameter.isQuery) {
|
|
119
131
|
queryParameters += this._queryParametersStatement(parameter);
|
|
120
132
|
}
|
|
@@ -149,6 +161,10 @@ export class ApiAngularWriter {
|
|
|
149
161
|
}
|
|
150
162
|
}
|
|
151
163
|
|
|
164
|
+
private _isIgnoredAngularParameter(parameter: ParameterDto): boolean {
|
|
165
|
+
return parameter.name?.toLowerCase() === 'version';
|
|
166
|
+
}
|
|
167
|
+
|
|
152
168
|
private _writeFile(apis: string) {
|
|
153
169
|
const className = this._commandLineArgs.apiClientName || 'ApiAutogeneratedService';
|
|
154
170
|
const apiPre = this._getApiPre(className);
|