ghost
Version:
The professional publishing platform
33 lines (27 loc) • 1.15 kB
JavaScript
const Command = require('./command');
const chalk = require('chalk');
module.exports = class REPL extends Command {
setup() {
this.help('Launches a REPL environment with access to a configured db instance and models');
// this is only here to demo how to set a default value for an arg :)
this.argument('--color', {type: 'string', defaultValue: 'yellow', hidden: true});
}
initializeContext(context) {
const models = require('../server/models');
const knex = require('../server/data/db/connection');
models.init();
context.models = models;
context.m = models;
context.knex = knex;
context.k = knex;
}
async handle(argv = {}) {
this.debug(chalk[argv.color]('== Ghost development REPL =='));
this.info(`a knex database instance is available as ${chalk.magenta('knex')}`);
this.info(`bookshelf models are available as ${chalk.magenta('models')}`);
const repl = require('repl');
const cli = repl.start('> ');
this.initializeContext(cli.context);
cli.on('reset', this.initializeContext);
}
};