bustlelabs/shep

View on GitHub
src/commands/generate/function.js

Summary

Maintainability
A
0 mins
Test Coverage
import inquirer from 'inquirer'
import reporter from '../../util/reporter'
import generateFunction from '../../generate-function'
import merge from 'lodash.merge'

const questions = [
  {
    name: 'name',
    type: 'input',
    message: 'Function name'
  }
]

export const command = 'function [name]'
export const desc = 'Generate a new function'
export function builder (yargs) {
  return yargs
  .pkgConf('shep', process.cwd())
  .describe('name', 'Function name')
  .describe('quiet', 'Don\'t log anything')
  .default('quiet', false)
  .alias('q', 'quiet')
  .example('shep generate function', 'Launch an interactive CLI')
  .example('shep generate function foo', 'Generate a new function called "foo"')
}

export async function handler (opts) {
  if (!opts.quiet) { opts.logger = reporter() }
  const inputs = await inquirer.prompt(questions.filter((q) => !opts[q.name]))
  return generateFunction(merge({}, inputs, opts))
}