Skip to content

Commit 0c5f34e

Browse files
committed
Modifying the es5 and es6 templates for javascript to handle default values
for required fields better. This change ensures the required field isn't overridden with undefined when the object is constructed - especially through a chain of constructFromObject calls..
1 parent 81d0f72 commit 0c5f34e

File tree

4 files changed

+8
-3
lines changed

4 files changed

+8
-3
lines changed

modules/openapi-generator/src/main/resources/Javascript/es6/partial_model_generic.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class {{classname}} {{#parent}}{{^parentModel}}{{#vendorExtensions.x-is-array}}e
2626
* Only for internal use.
2727
*/{{/emitJSDoc}}
2828
static initialize(obj{{#vendorExtensions.x-all-required}}, {{name}}{{/vendorExtensions.x-all-required}}) { {{#vars}}{{#required}}
29-
obj['{{baseName}}'] = {{name}};{{/required}}{{/vars}}
29+
{{#defaultValue}}obj['{{baseName}}'] = {{name}} || {{{defaultValue}}};{{/defaultValue}}{{^defaultValue}}obj['{{baseName}}'] = {{name}};{{/defaultValue}}{{/required}}{{/vars}}
3030
}
3131

3232
{{#emitJSDoc}}/**

modules/openapi-generator/src/main/resources/Javascript/partial_model_generic.mustache

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,12 @@
3333
{{/useInheritance}}
3434
{{#vars}}
3535
{{#required}}
36+
{{#defaultValue}}
37+
_this['{{baseName}}'] = {{name}} || {{{defaultValue}}};
38+
{{/defaultValue}}
39+
{{^defaultValue}}
3640
_this['{{baseName}}'] = {{name}};
41+
{{/defaultValue}}
3742
{{/required}}
3843
{{/vars}}
3944
{{#parent}}

samples/client/petstore/javascript-es6/src/model/Category.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Category {
3535
* Only for internal use.
3636
*/
3737
static initialize(obj, name) {
38-
obj['name'] = name;
38+
obj['name'] = name || 'default-name';
3939
}
4040

4141
/**

samples/client/petstore/javascript-promise-es6/src/model/Category.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Category {
3535
* Only for internal use.
3636
*/
3737
static initialize(obj, name) {
38-
obj['name'] = name;
38+
obj['name'] = name || 'default-name';
3939
}
4040

4141
/**

0 commit comments

Comments
 (0)