UNPKG

2.52 kBJavaScriptView Raw
1"use strict";
2
3function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
5function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
7const fs = require('fs-extra');
8
9const params = require('./params');
10
11const engine =
12/*#__PURE__*/
13function () {
14 var _ref = _asyncToGenerator(function* (argv, config) {
15 const cwd = config.cwd,
16 templates = config.templates,
17 logger = config.logger;
18 const args = Object.assign((yield params(config, argv)), {
19 cwd
20 });
21 const generator = args.generator,
22 action = args.action,
23 actionfolder = args.actionfolder;
24
25 if (['-h', '--help'].includes(argv[0])) {
26 logger.log(`
27Usage:
28 hygen [option] GENERATOR ACTION [--name NAME] [data-options]
29
30Options:
31 -h, --help # Show this message and quit
32 --dry # Perform a dry run. Files will be generated but not saved.`);
33 process.exit(0);
34 }
35
36 logger.log(args.dry ? '(dry mode)' : '');
37
38 if (!generator) {
39 throw new Error('please specify a generator.');
40 }
41
42 if (!action) {
43 throw new Error(`please specify an action for ${generator}.`);
44 }
45
46 logger.log(`Loaded templates: ${templates.replace(cwd + '/', '')}`);
47
48 if (!(yield fs.exists(actionfolder))) {
49 throw new Error(`I can't find action '${action}' for generator '${generator}'.
50
51 You can try:
52 1. 'hygen init self' to initialize your project, and
53 2. 'hygen generator new --name ${generator}' to build the generator you wanted.
54
55 Check out the quickstart for more: http://www.hygen.io/quick-start
56 `);
57 } // lazy loading these dependencies gives a better feel once
58 // a user is exploring hygen (not specifying what to execute)
59
60
61 const execute = require('./execute');
62
63 const render = require('./render');
64
65 return yield execute((yield render(args, config)), args, config);
66 });
67
68 return function engine(_x, _x2) {
69 return _ref.apply(this, arguments);
70 };
71}();
72
73module.exports = engine;
\No newline at end of file