UNPKG

1.19 kBJavaScriptView Raw
1"use strict";
2const fs = require("fs-extra");
3const lodash_1 = require("lodash");
4const path_1 = require("path");
5const addConfig_1 = require("../fns/add-cmd/addConfig");
6const cmdName_1 = require("../fns/cmdName");
7const sortObjectByKey_1 = require("../fns/sortObjectByKey");
8const PromptableConfig_1 = require("../lib/PromptableConfig");
9const command = cmdName_1.cmdName(__filename);
10const modulesDir = path_1.dirname(require.resolve('../lib/init/00_code-owners'));
11const initModules = fs.readdirSync(modulesDir, 'utf8')
12 .sort()
13 .map(p => require(path_1.join(modulesDir, p)));
14const cmd = {
15 builder(argv) {
16 addConfig_1.addConfig(argv, 'init');
17 const opts = {};
18 for (const mod of initModules) {
19 if (!lodash_1.isEmpty(mod.options)) {
20 Object.assign(opts, mod.options);
21 }
22 }
23 return argv.options(sortObjectByKey_1.sortObjectByKey(opts));
24 },
25 command,
26 describe: 'Project initialisation operations',
27 handler(conf) {
28 const c = new PromptableConfig_1.PromptableConfig(conf);
29 for (const mod of initModules) {
30 mod.handle(c);
31 }
32 }
33};
34module.exports = cmd;