UNPKG

hades-cli

Version:
71 lines (70 loc) 3.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const command_1 = require("@oclif/command"); const types_1 = require("./../@cliter/types"); const utils_1 = require("./../@cliter/utils"); const fs = require("fs"); const chalk = require("chalk"); const path = require("path"); const emoji = require("node-emoji"); const logSymbols = require("log-symbols"); const shell = require("shelljs"); const ora = require("ora"); class Seed extends command_1.Command { async run() { const { args, flags } = this.parse(Seed); if (args.elementType === 'b') args.elementType = 'bounded-context'; if (args.elementType === 'm') args.elementType = 'module'; if (args.elementType === types_1.TemplateElement.MODULE) { let moduleFlag = {}; if (flags.module) moduleFlag = utils_1.Operations.parseFlagOfBoundedContextAndModule(this, flags.module); const { boundedContextName, moduleName } = await utils_1.Prompter.promptForSeedModule(moduleFlag === null || moduleFlag === void 0 ? void 0 : moduleFlag.boundedContextName, moduleFlag === null || moduleFlag === void 0 ? void 0 : moduleFlag.moduleName); const seederPath = path.join('src', 'apps', boundedContextName, moduleName, 'seeder', 'seeder.ts'); // check if seeder class exists in framework tree folders if (fs.existsSync(path.join(process.cwd(), seederPath))) { const environmentSpinner = ora('Creating environment').start(); shell.exec(`ts-node -r tsconfig-paths/register ${seederPath}`, { silent: !flags.log, async: true }, () => { environmentSpinner.succeed('Environment created'); this.log(`%s %s Module seed ${moduleName} has been loaded %s`, chalk.green.bold('DONE'), emoji.get('open_file_folder'), logSymbols.success); }); } else { this.log(`%s Module ${moduleName} does not contain seed to run %s`, chalk.yellow.bold('WARNING'), logSymbols.warning); } } if (args.elementType.toSnakeCase() === types_1.TemplateElement.BOUNDED_CONTEXT) { const { boundedContextName } = await utils_1.Prompter.promptForSeedBoundedContext(flags.boundedContext); const seederPath = path.join('src', 'apps', boundedContextName, 'seeder', 'seeder.ts'); // check if seeder class exists in framework tree folders if (fs.existsSync(path.join(process.cwd(), seederPath))) { const environmentSpinner = ora('Creating environment').start(); shell.exec(`ts-node -r tsconfig-paths/register ${seederPath}`, { silent: !flags.log, async: true }, () => { environmentSpinner.succeed('Environment created'); this.log(`%s %s Bounded Context seed ${boundedContextName} has been loaded %s`, chalk.green.bold('DONE'), emoji.get('open_file_folder'), logSymbols.success); }); } else { this.log(`%s Bounded Context ${boundedContextName} does not contain seed to run %s`, chalk.yellow.bold('WARNING'), logSymbols.warning); } } } } exports.default = Seed; Seed.description = 'Seed database with bounded context or module selected'; Seed.flags = { help: command_1.flags.help({ char: 'h' }), module: command_1.flags.string({ char: 'm' }), boundedContext: command_1.flags.string({ char: 'b' }), log: command_1.flags.boolean({ char: 'l' }), }; Seed.args = [ { name: 'elementType', required: true, description: 'Type element to create', options: ['bounded-context', 'b', 'module', 'm'] } ];