UNPKG

jmms

Version:

Jmms cli tools, Jmms is a java meta-micro-service framework

66 lines (57 loc) 2.04 kB
const _ = require('lodash'); const log = require('../log'); const fs = require('fs'); const utils = require('../utils'); const dbms = require('./dbms'); const valid = require('../valid'); var BaseGenerator = require('../base'); module.exports = class extends BaseGenerator { constructor(args, opts) { super(args, opts, utils.resolveMeta(module.parent)); } _selectDatabase(done) { return this.prompt([ { type: 'list', name: 'type', message: 'Please select the database type!', choices: ['mysql'], default: 'mysql', validate: valid.required } ]).then((answers) => { this.type = answers.type; this.db = dbms[this.type]; if(!this.db) { log.error("Unsupported db type '" + this.type + "'"); process.exit(1); } done.call(this); }); } _selectDatabaseAndConfigure(done) { return this._selectDatabase(() => { this.prompt(this.db.prompt).then((ans) => { const conf = {type:this.type}; utils.copyProperties(ans, conf); done.call(this, conf); }); }); } _generateEntitiesWithOptions(entities, opts) { if(!fs.existsSync(this.app.entitiesDir)) { fs.mkdirSync(this.app.entitiesDir); } for(var i=0; i<entities.length; i++){ const entity = entities[i]; const filename = entity.name + ".json"; const filepath = this.app.entityPath(filename); if(fs.existsSync(filepath)) { log.info(`File ${filename} exists, skip generating entity '${entity.name}`); }else { log.info(`Generate entity '${entity.name}' at '${filename}'`); fs.writeFileSync(filepath, JSON.stringify(entity, null, 4)); } } } };