UNPKG

koa2-starter

Version:
54 lines (44 loc) 1.12 kB
const path = require('path') const metadata = require('read-metadata') const exists = require('fs').existsSync const getGitUser = require('./git-user') function options (name, dir) { const opts = getMetadata(dir) setDefault(opts, 'name', name) const author = getGitUser() if (author) { setDefault(opts, 'author', author) } return opts } function getMetadata (dir) { const json = path.join(dir, 'meta.json') const js = path.join(dir, 'meta.js') let opts = {} if (exists(json)) { opts = metadata.sync(json) } else if (exists(js)) { const req = require(path.resolve(js)) if (req !== Object(req)) { throw new Error('meta.js needs to expose an object') } opts = req } return opts } function setDefault (opts, key, val) { if (opts.schema) { opts.prompts = opts.schema delete opts.schema } const prompts = opts.prompts || (opts.prompts = {}) if (!prompts[key] || typeof prompts[key] !== 'object') { prompts[key] = { 'type': 'string', 'default': val } } else { prompts[key]['default'] = val } } module.exports = options