Skip to content

Commit bfdd49a

Browse files
committed
add new JS enum mustache template
1 parent 3346c84 commit bfdd49a

File tree

3 files changed

+148
-0
lines changed

3 files changed

+148
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{#emitJSDoc}}
2+
/**
3+
* Enum class {{classname}}.
4+
* @enum {{=<% %>=}}{<%datatype%>}<%={{ }}=%>
5+
* @readonly
6+
*/
7+
{{/emitJSDoc}}
8+
exports.{{classname}} = {
9+
{{#allowableValues}}
10+
{{#values}}
11+
{{#emitJSDoc}}
12+
/**
13+
* value: {{{.}}}
14+
* @const
15+
*/
16+
{{/emitJSDoc}}
17+
"{{{.}}}": "{{{.}}}"{{^-last}},
18+
{{/-last}}
19+
{{/values}}
20+
{{/allowableValues}}
21+
};
22+
23+
return exports;
24+
}));
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
2+
{{#models}}{{#model}}
3+
{{#emitJSDoc}}
4+
/**
5+
* The {{classname}} model module.
6+
* @module {{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}}
7+
* @version {{projectVersion}}
8+
*/
9+
10+
/**
11+
* Constructs a new <code>{{classname}}</code>.{{#description}}
12+
* {{description}}{{/description}}
13+
* @alias module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}}
14+
* @class{{#useInheritance}}{{#parent}}
15+
* @extends {{#parentModel}}module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}}{{/parentModel}}{{^parentModel}}{{#vendorExtensions.x-isArray}}Array{{/vendorExtensions.x-isArray}}{{#vendorExtensions.x-isMap}}Object{{/vendorExtensions.x-isMap}}{{/parentModel}}{{/parent}}{{#interfaces}}
16+
* @implements module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{.}}{{/interfaces}}{{/useInheritance}}{{#vendorExtensions.x-all-required}}
17+
* @param {{.}}{{/vendorExtensions.x-all-required}}
18+
*/
19+
{{/emitJSDoc}}
20+
var exports = function({{#vendorExtensions.x-all-required}}{{.}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-all-required}}) {
21+
var _this = this;
22+
{{#parent}}{{^parentModel}}{{#vendorExtensions.x-isArray}} _this = new Array();
23+
Object.setPrototypeOf(_this, exports);
24+
{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}});{{/parentModel}}
25+
{{#interfaceModels}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}});
26+
{{/interfaceModels}}{{/useInheritance}}{{#vars}}{{#required}} _this['{{baseName}}'] = {{name}};{{/required}}
27+
{{/vars}}{{#parent}}{{^parentModel}} return _this;
28+
{{/parentModel}}{{/parent}} };
29+
30+
{{#emitJSDoc}}
31+
/**
32+
* Constructs a <code>{{classname}}</code> from a plain JavaScript object, optionally creating a new instance.
33+
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
34+
* @param {Object} data The plain JavaScript object bearing properties of interest.
35+
* @param {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> obj Optional instance to populate.
36+
* @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The populated <code>{{classname}}</code> instance.
37+
*/
38+
{{/emitJSDoc}}
39+
exports.constructFromObject = function(data, obj) {
40+
if (data){{! TODO: support polymorphism: discriminator property on data determines class to instantiate.}} {
41+
obj = obj || new exports();
42+
{{#parent}}{{^parentModel}} ApiClient.constructFromObject(data, obj, {{vendorExtensions.x-itemType}});
43+
{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.constructFromObject(data, obj);{{/parentModel}}
44+
{{#interfaces}} {{.}}.constructFromObject(data, obj);
45+
{{/interfaces}}{{/useInheritance}}{{#vars}} if (data.hasOwnProperty('{{baseName}}')) {
46+
obj['{{baseName}}']{{{defaultValueWithParam}}}
47+
}
48+
{{/vars}} }
49+
return obj;
50+
}
51+
{{#useInheritance}}{{#parentModel}}
52+
exports.prototype = Object.create({{classname}}.prototype);
53+
exports.prototype.constructor = exports;
54+
{{/parentModel}}{{/useInheritance}}
55+
{{#vars}}
56+
{{#emitJSDoc}}
57+
/**{{#description}}
58+
* {{{description}}}{{/description}}
59+
* @member {{{vendorExtensions.x-jsdoc-type}}} {{baseName}}{{#defaultValue}}
60+
* @default {{{defaultValue}}}{{/defaultValue}}
61+
*/
62+
{{/emitJSDoc}}
63+
exports.prototype['{{baseName}}'] = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}undefined{{/defaultValue}};
64+
{{/vars}}{{#useInheritance}}{{#interfaceModels}}
65+
// Implement {{classname}} interface:{{#allVars}}
66+
{{#emitJSDoc}}
67+
/**{{#description}}
68+
* {{{description}}}{{/description}}
69+
* @member {{{vendorExtensions.x-jsdoc-type}}} {{baseName}}{{#defaultValue}}
70+
* @default {{{defaultValue}}}{{/defaultValue}}
71+
*/
72+
{{/emitJSDoc}}
73+
exports.prototype['{{baseName}}'] = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}undefined{{/defaultValue}};
74+
{{/allVars}}{{/interfaceModels}}{{/useInheritance}}
75+
{{#emitModelMethods}}{{#vars}}
76+
{{#emitJSDoc}}
77+
/**{{#description}}
78+
* Returns {{{description}}}{{/description}}{{#minimum}}
79+
* minimum: {{minimum}}{{/minimum}}{{#maximum}}
80+
* maximum: {{maximum}}{{/maximum}}
81+
* @return {{{vendorExtensions.x-jsdoc-type}}}
82+
*/
83+
{{/emitJSDoc}}
84+
exports.prototype.{{getter}} = function() {
85+
return this['{{baseName}}'];
86+
}
87+
88+
{{#emitJSDoc}}
89+
/**{{#description}}
90+
* Sets {{{description}}}{{/description}}
91+
* @param {{{vendorExtensions.x-jsdoc-type}}} {{name}}{{#description}} {{{description}}}{{/description}}
92+
*/
93+
{{/emitJSDoc}}
94+
exports.prototype.{{setter}} = function({{name}}) {
95+
this['{{baseName}}'] = {{name}};
96+
}
97+
98+
{{/vars}}{{/emitModelMethods}}
99+
{{#vars}}{{#isEnum}}{{>partial_model_inner_enum}}{{/isEnum}}{{#items.isEnum}}{{#items}}
100+
{{>partial_model_inner_enum}}{{/items}}*/{{/items.isEnum}}{{/vars}}
101+
102+
return exports;
103+
{{/model}}{{/models}}}));
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{#emitJSDoc}}
2+
/**
3+
* Allowed values for the <code>{{baseName}}</code> property.
4+
* @enum {{=<% %>=}}{<%datatype%>}<%={{ }}=%>
5+
* @readonly
6+
*/
7+
{{/emitJSDoc}}
8+
exports.{{datatypeWithEnum}} = {
9+
{{#allowableValues}}
10+
{{#enumVars}}
11+
{{#emitJSDoc}}
12+
/**
13+
* value: {{{value}}}
14+
* @const
15+
*/
16+
{{/emitJSDoc}}
17+
"{{name}}": {{{value}}}{{^-last}},
18+
{{/-last}}
19+
{{/enumVars}}
20+
{{/allowableValues}}
21+
};

0 commit comments

Comments
 (0)