UNPKG

2.61 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4 return new (P || (P = Promise))(function (resolve, reject) {
5 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8 step((generator = generator.apply(thisArg, _arguments || [])).next());
9 });
10};
11var __importDefault = (this && this.__importDefault) || function (mod) {
12 return (mod && mod.__esModule) ? mod : { "default": mod };
13};
14Object.defineProperty(exports, "__esModule", { value: true });
15const fs_extra_1 = __importDefault(require("fs-extra"));
16const params_1 = __importDefault(require("./params"));
17const engine = (argv, config) => __awaiter(void 0, void 0, void 0, function* () {
18 const { cwd, templates, logger } = config;
19 const args = Object.assign(yield params_1.default(config, argv), { cwd });
20 const { generator, action, actionfolder } = args;
21 if (['-h', '--help'].includes(argv[0])) {
22 logger.log(`
23Usage:
24 hygen [option] GENERATOR ACTION [--name NAME] [data-options]
25
26Options:
27 -h, --help # Show this message and quit
28 --dry # Perform a dry run. Files will be generated but not saved.`);
29 process.exit(0);
30 }
31 logger.log(args.dry ? '(dry mode)' : '');
32 if (!generator) {
33 throw new Error('please specify a generator.');
34 }
35 if (!action) {
36 throw new Error(`please specify an action for ${generator}.`);
37 }
38 logger.log(`Loaded templates: ${templates.replace(`${cwd}/`, '')}`);
39 if (!(yield fs_extra_1.default.exists(actionfolder))) {
40 throw new Error(`I can't find action '${action}' for generator '${generator}'.
41
42 You can try:
43 1. 'hygen init self' to initialize your project, and
44 2. 'hygen generator new --name ${generator}' to build the generator you wanted.
45
46 Check out the quickstart for more: http://www.hygen.io/quick-start
47 `);
48 }
49 // lazy loading these dependencies gives a better feel once
50 // a user is exploring hygen (not specifying what to execute)
51 const execute = require('./execute');
52 const render = require('./render');
53 return execute(yield render(args, config), args, config);
54});
55exports.default = engine;
56//# sourceMappingURL=engine.js.map
\No newline at end of file