UNPKG

apeman-tmpl

Version:
42 lines (34 loc) 1.14 kB
'use strict' const argx = require('argx') const co = require('co') const arrayreduce = require('arrayreduce') const arrayfilter = require('arrayfilter') const apemancwd = require('apemancwd') const listTemplate = require('./templating/list_template') const renderTemplate = require('./templating/render_template') const apemanfile = require('apemanfile') let concatArray = arrayreduce.arrayConcat() let rejectEmpty = arrayfilter.emptyReject() /** @lends apemanTmpl */ function apemanTmpl (names, options = {}) { let args = argx(arguments) options = args.pop('object') || {} names = args.remain().filter(rejectEmpty).reduce(concatArray, []) let configuration = apemanfile(options.configuration) let cwd = apemancwd.create({ prefix: 'apeman-tmpl' }) let verbose = !!options.verbose let force = !!options.force return co(function * () { cwd.chdir(configuration.$cwd || process.cwd()) if (options.list) { yield listTemplate(configuration, names) } else { yield renderTemplate(configuration, names, { verbose, force }) } cwd.restore() }) } module.exports = apemanTmpl