draig-car
Version:
Database REST API interactive generator CLI and REPL OpenAPI3 based JS generator with interactive ORM/ODM REPL
31 lines (28 loc) • 980 B
JavaScript
const util = require('util')
const chalk = require('chalk')
const mustache = require('mustache')
const u = require('../util')
const c = require('./common')
module.exports.newSchemaAction = async function(args) {
let api = this.context.api
let argv = this.context.argv
if (!args || args.length < 1) {
console.log('Usage: ' + this.commands.newsch.help)
return u.exitOrContinue(this)
}
let name = util.isArray(args) ? args[0] : args.split(' ')[0]
// read template
let view = await c.fillTemplate(this, 'schema', name)
if (null === view) return u.exitOrContinue(this)
// check if schema already exists
let schema = Object.keys(view)[0]
if (schema in api.components.schemas) {
console.error(chalk`Conflict - schema {yellow ${schema}} already exists`)
} else {
// add subtitution to new schema
api.components.schemas[schema] = view[schema]
console.error(chalk`Success - schema {green ${schema}} added`)
u.saveYaml(argv.api, api)
}
u.exitOrContinue(this)
}