1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports["default"] = parseArgv;
|
7 |
|
8 | var _fs = _interopRequireDefault(require("fs"));
|
9 |
|
10 | var _commander = _interopRequireDefault(require("commander"));
|
11 |
|
12 | var _core = require("@babel/core");
|
13 |
|
14 | var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
15 |
|
16 | var _glob = _interopRequireDefault(require("glob"));
|
17 |
|
18 | var _package = _interopRequireDefault(require("../package.json"));
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 | _commander["default"].option('--config [path]', 'Path to a elodin.config.js file to use');
|
49 |
|
50 | _commander["default"].option('-w, --watch', 'Recompile files on changes');
|
51 |
|
52 | _commander["default"].option('-c, --clean', 'Remove old files before compilation');
|
53 |
|
54 | _commander["default"].option('-sib, --skip-initial-build', 'Do not compile files before watching');
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 |
|
63 |
|
64 | _commander["default"].version(_package["default"].version);
|
65 |
|
66 | _commander["default"].usage('[options] <files ...>');
|
67 |
|
68 | function parseArgv(args) {
|
69 |
|
70 | _commander["default"].parse(args);
|
71 |
|
72 | var errors = [];
|
73 |
|
74 | var filenames = _commander["default"].args.reduce(function (globbed, input) {
|
75 | var files = _glob["default"].sync(input);
|
76 |
|
77 | if (!files.length) files = [input];
|
78 | return globbed.concat(files);
|
79 | }, []);
|
80 |
|
81 | filenames = (0, _uniq["default"])(filenames);
|
82 | filenames.forEach(function (filename) {
|
83 | if (!_fs["default"].existsSync(filename)) {
|
84 | errors.push(filename + ' does not exist');
|
85 | }
|
86 | });
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 | if (_commander["default"].watch) {
|
97 | if (!filenames.length) {
|
98 | errors.push('--watch requires filenames');
|
99 | }
|
100 | }
|
101 |
|
102 | if (_commander["default"].skipInitialBuild && !_commander["default"].watch) {
|
103 | errors.push('--skip-initial-build requires --watch');
|
104 | }
|
105 |
|
106 | if (errors.length) {
|
107 | console.error('elodin:');
|
108 | errors.forEach(function (e) {
|
109 | console.error(' ' + e);
|
110 | });
|
111 | process.exit(2);
|
112 | }
|
113 |
|
114 | var opts = _commander["default"].opts();
|
115 |
|
116 | var elodinOptions = {
|
117 |
|
118 |
|
119 |
|
120 |
|
121 | configFile: opts.config || './elodin.config.js'
|
122 | };
|
123 | return {
|
124 | elodinOptions: elodinOptions,
|
125 | cliOptions: {
|
126 | filename: opts.filename,
|
127 | filenames: filenames,
|
128 | watch: opts.watch,
|
129 | clean: opts.clean,
|
130 | skipInitialBuild: opts.skipInitialBuild
|
131 | }
|
132 | };
|
133 | }
|
134 |
|
135 | function booleanify(val) {
|
136 | if (val === 'true' || val == 1) {
|
137 | return true;
|
138 | }
|
139 |
|
140 | if (val === 'false' || val == 0 || !val) {
|
141 | return false;
|
142 | }
|
143 |
|
144 | return val;
|
145 | }
|
146 |
|
147 | function collect(value, previousValue) {
|
148 |
|
149 | if (typeof value !== 'string') return previousValue;
|
150 | var values = value.split(',');
|
151 | return previousValue ? previousValue.concat(values) : values;
|
152 | } |
\ | No newline at end of file |