deepify
Version:
DEEP Development Tools
70 lines (53 loc) • 1.72 kB
JavaScript
/**
* Created by CCristi on 5/11/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MigrationGenerator = undefined;
var _AbstractGenerator = require('./AbstractGenerator');
var _deepPackageManager = require('deep-package-manager');
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _joi = require('joi');
var _joi2 = _interopRequireDefault(_joi);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class MigrationGenerator extends _AbstractGenerator.AbstractGenerator {
/**
* @param {Object[]} args
*/
constructor(...args) {
super(...args);
}
/**
* @param {Function} cb
* @private
*/
_generate(cb) {
let microservice = this.generationSchema.microservice;
let cmdName = this.generationSchema.cmdName;
let cmdVersion = this.generationSchema.cmdVersion;
let migrationFolder = microservice.autoload.migration;
let migrationPath = _path2.default.join(migrationFolder, `version${Date.now()}.js`);
let templateArgs = {
name: cmdName,
version: cmdVersion
};
_fsExtra2.default.ensureDirSync(migrationFolder);
this.renderFile('data/migration/migration.js', migrationPath, templateArgs);
cb(null, migrationPath);
}
/**
* @returns {Object}
*/
validationSchema() {
return _joi2.default.object().keys({
microservice: _joi2.default.object().type(_deepPackageManager.Microservice_Instance).required(),
version: _joi2.default.string().required()
});
}
}
exports.MigrationGenerator = MigrationGenerator;