Skip to content

Commit f673531

Browse files
satoshiwing328
authored andcommitted
Added vendorExtensions.x-isPrimitive. (#7991)
* Added vendorExtensions.x-isPrimitive. Switch template for constructFromObject. * Reflect review indication.
1 parent 006f084 commit f673531

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,11 @@ public CodegenModel fromModel(String name, Model model, Map<String, Model> allDe
794794
if (mm.getAdditionalProperties() != null) {
795795
codegenModel.vendorExtensions.put("x-isMap", true);
796796
codegenModel.vendorExtensions.put("x-itemType", getSwaggerType(mm.getAdditionalProperties()));
797+
} else {
798+
String type = mm.getType();
799+
if (isPrimitiveType(type)){
800+
codegenModel.vendorExtensions.put("x-isPrimitive", true);
801+
}
797802
}
798803
}
799804

@@ -878,6 +883,11 @@ private boolean isModelledType(CodegenOperation co) {
878883
return !Boolean.TRUE.equals(co.returnTypeIsPrimitive);
879884
}
880885

886+
private boolean isPrimitiveType(String type) {
887+
final String[] primitives = {"number", "integer", "string", "boolean", "null"};
888+
return Arrays.asList(primitives).contains(type);
889+
}
890+
881891
@SuppressWarnings("unchecked")
882892
@Override
883893
public Map<String, Object> postProcessOperations(Map<String, Object> objs) {

modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@
3636
* @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The populated <code>{{classname}}</code> instance.
3737
*/
3838
{{/emitJSDoc}}
39+
{{#vendorExtensions.x-isPrimitive}}
40+
exports.constructFromObject = function(data, obj) {
41+
return data;
42+
}
43+
{{/vendorExtensions.x-isPrimitive}}
44+
{{^vendorExtensions.x-isPrimitive}}
3945
exports.constructFromObject = function(data, obj) {
4046
if (data){{! TODO: support polymorphism: discriminator property on data determines class to instantiate.}} {
4147
obj = obj || new exports();
@@ -48,6 +54,7 @@
4854
{{/vars}} }
4955
return obj;
5056
}
57+
{{/vendorExtensions.x-isPrimitive}}
5158
{{#useInheritance}}{{#parentModel}}
5259
exports.prototype = Object.create({{classname}}.prototype);
5360
exports.prototype.constructor = exports;

0 commit comments

Comments
 (0)