UNPKG

grapi-cli

Version:

a cli tool to generate loopback 4 applications with extra features like caching & fuzzy search

33 lines (32 loc) 1.35 kB
import { Args, Command } from '@oclif/core'; import chalk from 'chalk'; import { processOptions, execute, standardFlags, prompt } from '../utils/index.js'; export default class Example extends Command { static description = 'download examples.'; static args = { ['example-name']: Args.string({ description: 'Optional name of the example to clone. If provided, the tool will skip the example-name prompt and run in a non-interactive mode.', }), }; static flags = { ...standardFlags }; async run() { const parsed = await this.parse(Example); if (!parsed.flags.config) return prompt('example', parsed.flags); let options = processOptions(parsed.flags); let configs = ''; if (Object.keys(options).length) { configs = ` --config='${JSON.stringify(options)}' `; } let argument = ''; if (parsed.args['example-name']) { argument = ` ${parsed.args['example-name']}`; } const command = `lb4 example${argument}${configs}--yes`; const executed = await execute(command, 'downloading example.'); if (executed.stderr) console.log(chalk.bold(chalk.green(executed.stderr))); if (executed.stdout) console.log(chalk.bold(chalk.green(executed.stdout))); } }