node-mocker-server
Version:
File based Node REST API mock server
108 lines (91 loc) • 2.21 kB
JavaScript
'use strict';
var SwaggerUtils = require('./SwaggerUtils');
var Utils = require('./Utils');
var extend = require('util')._extend;
var DTOToResponseFuncConverter = require('./DTOToResponseFuncConverter');
/**
*
* @class SwaggerDefinition
* @namespace SwaggerImport
* @param {string} name
* @param {object} definition
* @param {object} options
* @constructor
*
* Swagger importer
*/
function SwaggerDefinition(name, definition, options) {
this.init(name, definition, options);
}
SwaggerDefinition.prototype = extend(SwaggerDefinition.prototype, Utils.prototype);
SwaggerDefinition.prototype = extend(SwaggerDefinition.prototype, SwaggerUtils.prototype);
SwaggerDefinition.prototype = extend(SwaggerDefinition.prototype, {
constructor: SwaggerDefinition,
/**
*
* @method init
* called by constructor
* @param {string} name
* @param {object} definition
* @param {object} options
* @returns void
* @public
*/
init: function (name, definition, options) {
this._name = name;
this._str = '';
this._def = {};
this._options = options;
if (typeof definition === 'object') {
this._def = this.restructureSchema(definition);
this._str = JSON.stringify(this._def);
}
},
/**
* @method mapReferences
* @returns {void}
* @public
*/
mapReferences: function () {
this._def = JSON.parse(this._str);
},
/**
*
* @method setSwaggerDefinitions
* @param {object} swaggerDefinitions
* @public
*/
setSwaggerDefinitions: function (swaggerDefinitions) {
this._swaggerDefinitions = swaggerDefinitions;
},
/**
*
* @method get
* @returns {object} definition
*/
get: function () {
return this._def;
},
/**
*
* @method write
* @returns {void}
* @public
*/
write: function () {
var dir = this._options.dest + '/_DTO';
var file = dir + '/' + this._name + '.json';
var dtoToResponseFuncConverter;
dtoToResponseFuncConverter = new DTOToResponseFuncConverter(
this._name,
this._def,
this._options,
false
);
dtoToResponseFuncConverter.create();
dtoToResponseFuncConverter.write();
this.writeDir(dir);
this.writeFile(file, JSON.stringify(this._def, null, 2));
},
});
module.exports = SwaggerDefinition;