better JS enum class support

This commit is contained in:
wing328 2016-05-03 11:06:38 +08:00
parent d35e30d578
commit acb34e3db0
18 changed files with 100 additions and 172 deletions

View File

@ -15,91 +15,6 @@
}(this, function(ApiClient{{#imports}}, {{import}}{{/imports}}) { }(this, function(ApiClient{{#imports}}, {{import}}{{/imports}}) {
'use strict'; 'use strict';
{{#models}}{{#model}}{{#emitJSDoc}} /** {{#models}}{{#model}}
* The {{classname}} model module. {{#isEnum}}{{>partial_model_enum_class}}{{/isEnum}}{{^isEnum}}{{>partial_model_generic}}{{/isEnum}}
* @module {{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}} {{/model}}{{/models}}
* @version {{projectVersion}}
*/
/**
* Constructs a new <code>{{classname}}</code>.{{#description}}
* {{description}}{{/description}}
* @alias module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{classname}}
* @class{{#useInheritance}}{{#parent}}
* @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}}
* @implements module:{{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}{{#modelPackage}}{{modelPackage}}/{{/modelPackage}}{{.}}{{/interfaces}}{{/useInheritance}}{{#vendorExtensions.x-all-required}}
* @param {{.}}{{/vendorExtensions.x-all-required}}
*/
{{/emitJSDoc}} var exports = function({{#vendorExtensions.x-all-required}}{{.}}{{^-last}}, {{/-last}}{{/vendorExtensions.x-all-required}}) {
var _this = this;
{{#parent}}{{^parentModel}}{{#vendorExtensions.x-isArray}} _this = new Array();
Object.setPrototypeOf(_this, exports);
{{/vendorExtensions.x-isArray}}{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}});{{/parentModel}}
{{#interfaceModels}} {{classname}}.call(_this{{#vendorExtensions.x-all-required}}, {{.}}{{/vendorExtensions.x-all-required}});
{{/interfaceModels}}{{/useInheritance}}{{#vars}}{{#required}} _this['{{baseName}}'] = {{name}};{{/required}}
{{/vars}}{{#parent}}{{^parentModel}} return _this;
{{/parentModel}}{{/parent}} };
{{#emitJSDoc}} /**
* Constructs a <code>{{classname}}</code> from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> obj Optional instance to populate.
* @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The populated <code>{{classname}}</code> instance.
*/
{{/emitJSDoc}} exports.constructFromObject = function(data, obj) {
if (data){{! TODO: support polymorphism: discriminator property on data determines class to instantiate.}} {
obj = obj || new exports();
{{#parent}}{{^parentModel}} ApiClient.constructFromObject(data, obj, {{vendorExtensions.x-itemType}});
{{/parentModel}}{{/parent}}{{#useInheritance}}{{#parentModel}} {{classname}}.constructFromObject(data, obj);{{/parentModel}}
{{#interfaces}} {{.}}.constructFromObject(data, obj);
{{/interfaces}}{{/useInheritance}}{{#vars}} if (data.hasOwnProperty('{{baseName}}')) {
obj['{{baseName}}']{{{defaultValueWithParam}}}
}
{{/vars}} }
return obj;
}
{{#useInheritance}}{{#parentModel}}
exports.prototype = Object.create({{classname}}.prototype);
exports.prototype.constructor = exports;
{{/parentModel}}{{/useInheritance}}
{{#vars}}{{#emitJSDoc}}
/**{{#description}}
* {{{description}}}{{/description}}
* @member {{{vendorExtensions.x-jsdoc-type}}} {{baseName}}{{#defaultValue}}
* @default {{{defaultValue}}}{{/defaultValue}}
*/
{{/emitJSDoc}} exports.prototype['{{baseName}}'] = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}undefined{{/defaultValue}};
{{/vars}}{{#useInheritance}}{{#interfaceModels}}
// Implement {{classname}} interface:{{#allVars}}{{#emitJSDoc}}
/**{{#description}}
* {{{description}}}{{/description}}
* @member {{{vendorExtensions.x-jsdoc-type}}} {{baseName}}{{#defaultValue}}
* @default {{{defaultValue}}}{{/defaultValue}}
*/
{{/emitJSDoc}} exports.prototype['{{baseName}}'] = {{#defaultValue}}{{{defaultValue}}}{{/defaultValue}}{{^defaultValue}}undefined{{/defaultValue}};
{{/allVars}}{{/interfaceModels}}{{/useInheritance}}
{{#emitModelMethods}}{{#vars}}{{#emitJSDoc}} /**{{#description}}
* Returns {{{description}}}{{/description}}{{#minimum}}
* minimum: {{minimum}}{{/minimum}}{{#maximum}}
* maximum: {{maximum}}{{/maximum}}
* @return {{{vendorExtensions.x-jsdoc-type}}}
*/
{{/emitJSDoc}} exports.prototype.{{getter}} = function() {
return this['{{baseName}}'];
}
{{#emitJSDoc}} /**{{#description}}
* Sets {{{description}}}{{/description}}
* @param {{{vendorExtensions.x-jsdoc-type}}} {{name}}{{#description}} {{{description}}}{{/description}}
*/
{{/emitJSDoc}} exports.prototype.{{setter}} = function({{name}}) {
this['{{baseName}}'] = {{name}};
}
{{/vars}}{{/emitModelMethods}}
{{#vars}}{{#isEnum}}{{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}}
{{>enumClass}}{{/items}}*/{{/items.isEnum}}{{/vars}}
return exports;
{{/model}}{{/models}}}));

View File

@ -6,7 +6,7 @@ This SDK is automatically generated by the [Swagger Codegen](https://github.com/
- API version: 1.0.0 - API version: 1.0.0
- Package version: 1.0.0 - Package version: 1.0.0
- Build date: 2016-05-02T23:24:54.621+08:00 - Build date: 2016-05-03T11:05:41.851+08:00
- Build package: class io.swagger.codegen.languages.JavascriptClientCodegen - Build package: class io.swagger.codegen.languages.JavascriptClientCodegen
## Installation ## Installation

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Animal model module. * The Animal model module.
* @module model/Animal * @module model/Animal
@ -51,7 +54,6 @@
return obj; return obj;
} }
/** /**
* @member {String} className * @member {String} className
*/ */
@ -62,3 +64,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The ApiResponse model module. * The ApiResponse model module.
* @module model/ApiResponse * @module model/ApiResponse
@ -58,17 +61,14 @@
return obj; return obj;
} }
/** /**
* @member {Integer} code * @member {Integer} code
*/ */
exports.prototype['code'] = undefined; exports.prototype['code'] = undefined;
/** /**
* @member {String} type * @member {String} type
*/ */
exports.prototype['type'] = undefined; exports.prototype['type'] = undefined;
/** /**
* @member {String} message * @member {String} message
*/ */
@ -79,3 +79,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient, Animal) { }(this, function(ApiClient, Animal) {
'use strict'; 'use strict';
/** /**
* The Cat model module. * The Cat model module.
* @module model/Cat * @module model/Cat
@ -55,7 +58,6 @@
exports.prototype = Object.create(Animal.prototype); exports.prototype = Object.create(Animal.prototype);
exports.prototype.constructor = exports; exports.prototype.constructor = exports;
/** /**
* @member {Boolean} declawed * @member {Boolean} declawed
*/ */
@ -66,3 +68,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Category model module. * The Category model module.
* @module model/Category * @module model/Category
@ -54,12 +57,10 @@
return obj; return obj;
} }
/** /**
* @member {Integer} id * @member {Integer} id
*/ */
exports.prototype['id'] = undefined; exports.prototype['id'] = undefined;
/** /**
* @member {String} name * @member {String} name
*/ */
@ -70,3 +71,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient, Animal) { }(this, function(ApiClient, Animal) {
'use strict'; 'use strict';
/** /**
* The Dog model module. * The Dog model module.
* @module model/Dog * @module model/Dog
@ -55,7 +58,6 @@
exports.prototype = Object.create(Animal.prototype); exports.prototype = Object.create(Animal.prototype);
exports.prototype.constructor = exports; exports.prototype.constructor = exports;
/** /**
* @member {String} breed * @member {String} breed
*/ */
@ -66,3 +68,5 @@
return exports; return exports;
})); }));

View File

@ -15,40 +15,30 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/**
* The EnumClass model module.
* @module model/EnumClass
* @version 1.0.0
*/
/** /**
* Constructs a new <code>EnumClass</code>. * Enum class EnumClass.
* @alias module:model/EnumClass * @enum {}
* @class * @readonly
*/ */
var exports = function() { exports.EnumClass = {
var _this = this; /**
* value: _abc
}; * @const
*/
/** "_abc": "_abc",
* Constructs a <code>EnumClass</code> from a plain JavaScript object, optionally creating a new instance. /**
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not. * value: -efg
* @param {Object} data The plain JavaScript object bearing properties of interest. * @const
* @param {module:model/EnumClass} obj Optional instance to populate. */
* @return {module:model/EnumClass} The populated <code>EnumClass</code> instance. "-efg": "-efg",
*/ /**
exports.constructFromObject = function(data, obj) { * value: (xyz)
if (data) { * @const
obj = obj || new exports(); */
"(xyz)": "(xyz)" };
}
return obj;
}
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The EnumTest model module. * The EnumTest model module.
* @module model/EnumTest * @module model/EnumTest
@ -58,17 +61,14 @@
return obj; return obj;
} }
/** /**
* @member {module:model/EnumTest.EnumStringEnum} enum_string * @member {module:model/EnumTest.EnumStringEnum} enum_string
*/ */
exports.prototype['enum_string'] = undefined; exports.prototype['enum_string'] = undefined;
/** /**
* @member {module:model/EnumTest.EnumIntegerEnum} enum_integer * @member {module:model/EnumTest.EnumIntegerEnum} enum_integer
*/ */
exports.prototype['enum_integer'] = undefined; exports.prototype['enum_integer'] = undefined;
/** /**
* @member {module:model/EnumTest.EnumNumberEnum} enum_number * @member {module:model/EnumTest.EnumNumberEnum} enum_number
*/ */
@ -127,3 +127,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The FormatTest model module. * The FormatTest model module.
* @module model/FormatTest * @module model/FormatTest
@ -102,67 +105,54 @@
return obj; return obj;
} }
/** /**
* @member {Integer} integer * @member {Integer} integer
*/ */
exports.prototype['integer'] = undefined; exports.prototype['integer'] = undefined;
/** /**
* @member {Integer} int32 * @member {Integer} int32
*/ */
exports.prototype['int32'] = undefined; exports.prototype['int32'] = undefined;
/** /**
* @member {Integer} int64 * @member {Integer} int64
*/ */
exports.prototype['int64'] = undefined; exports.prototype['int64'] = undefined;
/** /**
* @member {Number} number * @member {Number} number
*/ */
exports.prototype['number'] = undefined; exports.prototype['number'] = undefined;
/** /**
* @member {Number} float * @member {Number} float
*/ */
exports.prototype['float'] = undefined; exports.prototype['float'] = undefined;
/** /**
* @member {Number} double * @member {Number} double
*/ */
exports.prototype['double'] = undefined; exports.prototype['double'] = undefined;
/** /**
* @member {String} string * @member {String} string
*/ */
exports.prototype['string'] = undefined; exports.prototype['string'] = undefined;
/** /**
* @member {String} byte * @member {String} byte
*/ */
exports.prototype['byte'] = undefined; exports.prototype['byte'] = undefined;
/** /**
* @member {String} binary * @member {String} binary
*/ */
exports.prototype['binary'] = undefined; exports.prototype['binary'] = undefined;
/** /**
* @member {Date} date * @member {Date} date
*/ */
exports.prototype['date'] = undefined; exports.prototype['date'] = undefined;
/** /**
* @member {Date} dateTime * @member {Date} dateTime
*/ */
exports.prototype['dateTime'] = undefined; exports.prototype['dateTime'] = undefined;
/** /**
* @member {String} uuid * @member {String} uuid
*/ */
exports.prototype['uuid'] = undefined; exports.prototype['uuid'] = undefined;
/** /**
* @member {String} password * @member {String} password
*/ */
@ -173,3 +163,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Model200Response model module. * The Model200Response model module.
* @module model/Model200Response * @module model/Model200Response
@ -51,7 +54,6 @@
return obj; return obj;
} }
/** /**
* @member {Integer} name * @member {Integer} name
*/ */
@ -62,3 +64,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The ModelReturn model module. * The ModelReturn model module.
* @module model/ModelReturn * @module model/ModelReturn
@ -51,7 +54,6 @@
return obj; return obj;
} }
/** /**
* @member {Integer} return * @member {Integer} return
*/ */
@ -62,3 +64,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Name model module. * The Name model module.
* @module model/Name * @module model/Name
@ -60,17 +63,14 @@
return obj; return obj;
} }
/** /**
* @member {Integer} name * @member {Integer} name
*/ */
exports.prototype['name'] = undefined; exports.prototype['name'] = undefined;
/** /**
* @member {Integer} snake_case * @member {Integer} snake_case
*/ */
exports.prototype['snake_case'] = undefined; exports.prototype['snake_case'] = undefined;
/** /**
* @member {String} property * @member {String} property
*/ */
@ -81,3 +81,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Order model module. * The Order model module.
* @module model/Order * @module model/Order
@ -70,33 +73,27 @@
return obj; return obj;
} }
/** /**
* @member {Integer} id * @member {Integer} id
*/ */
exports.prototype['id'] = undefined; exports.prototype['id'] = undefined;
/** /**
* @member {Integer} petId * @member {Integer} petId
*/ */
exports.prototype['petId'] = undefined; exports.prototype['petId'] = undefined;
/** /**
* @member {Integer} quantity * @member {Integer} quantity
*/ */
exports.prototype['quantity'] = undefined; exports.prototype['quantity'] = undefined;
/** /**
* @member {Date} shipDate * @member {Date} shipDate
*/ */
exports.prototype['shipDate'] = undefined; exports.prototype['shipDate'] = undefined;
/** /**
* Order Status * Order Status
* @member {module:model/Order.StatusEnum} status * @member {module:model/Order.StatusEnum} status
*/ */
exports.prototype['status'] = undefined; exports.prototype['status'] = undefined;
/** /**
* @member {Boolean} complete * @member {Boolean} complete
* @default false * @default false
@ -129,3 +126,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient, Category, Tag) { }(this, function(ApiClient, Category, Tag) {
'use strict'; 'use strict';
/** /**
* The Pet model module. * The Pet model module.
* @module model/Pet * @module model/Pet
@ -72,32 +75,26 @@
return obj; return obj;
} }
/** /**
* @member {Integer} id * @member {Integer} id
*/ */
exports.prototype['id'] = undefined; exports.prototype['id'] = undefined;
/** /**
* @member {module:model/Category} category * @member {module:model/Category} category
*/ */
exports.prototype['category'] = undefined; exports.prototype['category'] = undefined;
/** /**
* @member {String} name * @member {String} name
*/ */
exports.prototype['name'] = undefined; exports.prototype['name'] = undefined;
/** /**
* @member {Array.<String>} photoUrls * @member {Array.<String>} photoUrls
*/ */
exports.prototype['photoUrls'] = undefined; exports.prototype['photoUrls'] = undefined;
/** /**
* @member {Array.<module:model/Tag>} tags * @member {Array.<module:model/Tag>} tags
*/ */
exports.prototype['tags'] = undefined; exports.prototype['tags'] = undefined;
/** /**
* pet status in the store * pet status in the store
* @member {module:model/Pet.StatusEnum} status * @member {module:model/Pet.StatusEnum} status
@ -130,3 +127,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The SpecialModelName model module. * The SpecialModelName model module.
* @module model/SpecialModelName * @module model/SpecialModelName
@ -50,7 +53,6 @@
return obj; return obj;
} }
/** /**
* @member {Integer} $special[property.name] * @member {Integer} $special[property.name]
*/ */
@ -61,3 +63,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The Tag model module. * The Tag model module.
* @module model/Tag * @module model/Tag
@ -54,12 +57,10 @@
return obj; return obj;
} }
/** /**
* @member {Integer} id * @member {Integer} id
*/ */
exports.prototype['id'] = undefined; exports.prototype['id'] = undefined;
/** /**
* @member {String} name * @member {String} name
*/ */
@ -70,3 +71,5 @@
return exports; return exports;
})); }));

View File

@ -15,6 +15,9 @@
}(this, function(ApiClient) { }(this, function(ApiClient) {
'use strict'; 'use strict';
/** /**
* The User model module. * The User model module.
* @module model/User * @module model/User
@ -78,42 +81,34 @@
return obj; return obj;
} }
/** /**
* @member {Integer} id * @member {Integer} id
*/ */
exports.prototype['id'] = undefined; exports.prototype['id'] = undefined;
/** /**
* @member {String} username * @member {String} username
*/ */
exports.prototype['username'] = undefined; exports.prototype['username'] = undefined;
/** /**
* @member {String} firstName * @member {String} firstName
*/ */
exports.prototype['firstName'] = undefined; exports.prototype['firstName'] = undefined;
/** /**
* @member {String} lastName * @member {String} lastName
*/ */
exports.prototype['lastName'] = undefined; exports.prototype['lastName'] = undefined;
/** /**
* @member {String} email * @member {String} email
*/ */
exports.prototype['email'] = undefined; exports.prototype['email'] = undefined;
/** /**
* @member {String} password * @member {String} password
*/ */
exports.prototype['password'] = undefined; exports.prototype['password'] = undefined;
/** /**
* @member {String} phone * @member {String} phone
*/ */
exports.prototype['phone'] = undefined; exports.prototype['phone'] = undefined;
/** /**
* User Status * User Status
* @member {Integer} userStatus * @member {Integer} userStatus
@ -125,3 +120,5 @@
return exports; return exports;
})); }));