deepify
Version:
DEEP Development Tools
72 lines (54 loc) • 1.86 kB
JavaScript
/**
* Created by CCristi on 5/3/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AngularFrontendGenerator = undefined;
var _AbstractGenerator = require('./AbstractGenerator');
var _joi = require('joi');
var _joi2 = _interopRequireDefault(_joi);
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class AngularFrontendGenerator extends _AbstractGenerator.AbstractGenerator {
/**
* @param {Object[]} args
*/
constructor(...args) {
super(...args);
}
/**
* @param {Function} cb
* @private
*/
_generate(cb) {
let identifier = this.generationSchema.identifier;
let targetDir = _path2.default.join(this.targetPath, 'js/app/angular');
_fsExtra2.default.ensureDirSync(targetDir);
['index.js', 'name.js', 'module.js'].forEach(resource => {
this.renderFile(_path2.default.join(AngularFrontendGenerator.TPL_DIR, resource), _path2.default.join(targetDir, resource), this.generationSchema);
});
this.renderFile('frontend/angular_bootstrap.js', _path2.default.join(`${this.targetPath}/bootstrap.js`), { identifier });
cb(null, this.targetPath);
}
/**
* @returns {Object}
*/
validationSchema() {
return _joi2.default.object().keys({
name: _joi2.default.string().required().regex(_AbstractGenerator.AbstractGenerator.DEEP_NAME_REGEXP),
identifier: _joi2.default.string().required().regex(_AbstractGenerator.AbstractGenerator.DEEP_NAME_REGEXP)
});
}
/**
* @returns {String}
*/
static get TPL_DIR() {
return 'frontend/js/app/angular';
}
}
exports.AngularFrontendGenerator = AngularFrontendGenerator;