UNPKG

1.23 kBJavaScriptView Raw
1/**
2 * @function _bud
3 */
4"use strict";
5
6const stringcase = require('stringcase'),
7 _tmpl = require('./_tmpl'),
8 pkg = require('../package.json'),
9 path = require('path');
10
11/** @lends _bud */
12function _bud(type, name, params) {
13 let tmpl = _tmpl(type, name);
14 return {
15 force: false,
16 mode: '644',
17 mkdirp: true,
18 path: params.filename || ((dirname, basename)=> {
19 let suffix = params.suffix,
20 prefix = params.prefix,
21 extname = params.extname || '.jsx';
22 if (prefix) {
23 basename = [prefix, basename].join('_');
24 }
25 if (suffix) {
26 basename = [basename, suffix].join('_');
27 }
28 return `${dirname}/${stringcase.snakecase(basename)}${extname}`;
29 })(path.dirname(name), path.basename(name)),
30 tmpl: tmpl,
31 data: {
32 params: params,
33 name: path.basename(name),
34 base: params.base || name.replace(/^\./, '').split('/').map(()=>'..').join('/'),
35 type: type,
36 generator: 'coz',
37 today: new Date().toLocaleDateString(),
38 pkg: pkg
39 }
40 }
41}
42
43module.exports = _bud;
\No newline at end of file