1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = void 0;
|
9 | exports.getBundleOpts = getBundleOpts;
|
10 |
|
11 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
12 |
|
13 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
14 |
|
15 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
16 |
|
17 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
18 |
|
19 | var _path = _interopRequireDefault(require("path"));
|
20 |
|
21 | var _fs = _interopRequireDefault(require("fs"));
|
22 |
|
23 | var _stanUtils = require("stan-utils");
|
24 |
|
25 | var _getStanConfig = _interopRequireDefault(require("./get-stan-config"));
|
26 |
|
27 | var _babel = _interopRequireDefault(require("./_babel"));
|
28 |
|
29 | var _rollup = _interopRequireDefault(require("./_rollup"));
|
30 |
|
31 | var _utils = require("./utils");
|
32 |
|
33 | var _validOptions = _interopRequireDefault(require("./valid-options"));
|
34 |
|
35 | var _excluded = ["src"];
|
36 |
|
37 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
38 |
|
39 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
40 |
|
41 | function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
42 |
|
43 | function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
44 |
|
45 | function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
46 |
|
47 | function getBundleOpts(opts) {
|
48 | var cwd = opts.cwd,
|
49 | _opts$args = opts.args,
|
50 | args = _opts$args === void 0 ? {} : _opts$args;
|
51 | var entry = (0, _utils.getExistFile)({
|
52 | cwd: cwd,
|
53 | files: ['src/index.tsx', 'src/index.ts', 'src/index.jsx', 'src/index.js', 'src/index.mjs', 'src/index.vue'],
|
54 | returnRelative: true
|
55 | });
|
56 | var bundleOpts = (0, _getStanConfig["default"])({
|
57 | cwd: cwd
|
58 | });
|
59 |
|
60 | if (!bundleOpts.length) {
|
61 | bundleOpts.push({});
|
62 | }
|
63 |
|
64 | return bundleOpts.map(function (stanConfig) {
|
65 | return _stanUtils.lodash.merge({
|
66 | entry: entry
|
67 | }, args, stanConfig);
|
68 | }).filter(function (v) {
|
69 | return !!v.entry && (v.esm || v.cjs || v.umd || v.system);
|
70 | });
|
71 | }
|
72 |
|
73 | function builder(_x) {
|
74 | return _builder.apply(this, arguments);
|
75 | }
|
76 |
|
77 | function _builder() {
|
78 | _builder = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee(opts) {
|
79 | var bundleOptions, cwd, rootPath, watch, verbose, dirs, _i, _dirs, dir, start, _iterator, _step, _loop;
|
80 |
|
81 | return _regenerator["default"].wrap(function _callee$(_context2) {
|
82 | while (1) {
|
83 | switch (_context2.prev = _context2.next) {
|
84 | case 0:
|
85 | bundleOptions = getBundleOpts(opts);
|
86 | cwd = opts.cwd, rootPath = opts.rootPath, watch = opts.watch, verbose = opts.verbose;
|
87 |
|
88 | if (!bundleOptions.length) {
|
89 | _context2.next = 25;
|
90 | break;
|
91 | }
|
92 |
|
93 | _context2.next = 5;
|
94 | return Promise.all(bundleOptions.map(function (v) {
|
95 | return _validOptions["default"].validateAsync(v);
|
96 | }));
|
97 |
|
98 | case 5:
|
99 | try {
|
100 | dirs = Array.from(bundleOptions.reduce(function (acc, options) {
|
101 | if (options.bundler === 'rollup' || !options.bundler) {
|
102 | acc.add('dist');
|
103 | } else {
|
104 | options.esm && acc.add('es');
|
105 | options.cjs && acc.add('lib');
|
106 | }
|
107 |
|
108 | return acc;
|
109 | }, new Set()));
|
110 | console.log(_stanUtils.chalk.gray("Clean up the ".concat(dirs, " directory.")));
|
111 |
|
112 | for (_i = 0, _dirs = dirs; _i < _dirs.length; _i++) {
|
113 | dir = _dirs[_i];
|
114 |
|
115 | _stanUtils.rimraf.sync(_path["default"].join(cwd, dir));
|
116 | }
|
117 | } catch (e) {}
|
118 |
|
119 | start = Date.now();
|
120 | _iterator = _createForOfIteratorHelper(bundleOptions);
|
121 | _context2.prev = 8;
|
122 | _loop = _regenerator["default"].mark(function _loop() {
|
123 | var bundleOpt, _bundleOpt$bundler, bundler, entry, esm, umd, cjs, system, copy, isBabel, targets, watcher, files, copyChangeFile, debouncedCopyFiles;
|
124 |
|
125 | return _regenerator["default"].wrap(function _loop$(_context) {
|
126 | while (1) {
|
127 | switch (_context.prev = _context.next) {
|
128 | case 0:
|
129 | bundleOpt = _step.value;
|
130 | _bundleOpt$bundler = bundleOpt.bundler, bundler = _bundleOpt$bundler === void 0 ? 'rollup' : _bundleOpt$bundler, entry = bundleOpt.entry, esm = bundleOpt.esm, umd = bundleOpt.umd, cjs = bundleOpt.cjs, system = bundleOpt.system, copy = bundleOpt.copy;
|
131 |
|
132 | isBabel = function isBabel(b) {
|
133 | return b === 'babel' || (b === null || b === void 0 ? void 0 : b.bundler) === 'babel' || bundler === 'babel';
|
134 | };
|
135 |
|
136 |
|
137 | if (!esm) {
|
138 | _context.next = 11;
|
139 | break;
|
140 | }
|
141 |
|
142 | if (!isBabel(esm)) {
|
143 | _context.next = 9;
|
144 | break;
|
145 | }
|
146 |
|
147 | _context.next = 7;
|
148 | return (0, _babel["default"])({
|
149 | cwd: cwd,
|
150 | rootPath: rootPath,
|
151 | watch: watch,
|
152 | type: 'esm',
|
153 | bundleOpt: bundleOpt,
|
154 | verbose: verbose
|
155 | });
|
156 |
|
157 | case 7:
|
158 | _context.next = 11;
|
159 | break;
|
160 |
|
161 | case 9:
|
162 | _context.next = 11;
|
163 | return (0, _rollup["default"])({
|
164 | cwd: cwd,
|
165 | watch: watch,
|
166 | type: 'esm',
|
167 | bundleOpt: bundleOpt,
|
168 | verbose: verbose
|
169 | });
|
170 |
|
171 | case 11:
|
172 | if (!cjs) {
|
173 | _context.next = 19;
|
174 | break;
|
175 | }
|
176 |
|
177 | if (!isBabel(esm)) {
|
178 | _context.next = 17;
|
179 | break;
|
180 | }
|
181 |
|
182 | _context.next = 15;
|
183 | return (0, _babel["default"])({
|
184 | cwd: cwd,
|
185 | rootPath: rootPath,
|
186 | watch: watch,
|
187 | type: 'cjs',
|
188 | bundleOpt: bundleOpt,
|
189 | verbose: verbose
|
190 | });
|
191 |
|
192 | case 15:
|
193 | _context.next = 19;
|
194 | break;
|
195 |
|
196 | case 17:
|
197 | _context.next = 19;
|
198 | return (0, _rollup["default"])({
|
199 | cwd: cwd,
|
200 | watch: watch,
|
201 | type: 'cjs',
|
202 | bundleOpt: bundleOpt,
|
203 | verbose: verbose
|
204 | });
|
205 |
|
206 | case 19:
|
207 | if (!umd) {
|
208 | _context.next = 22;
|
209 | break;
|
210 | }
|
211 |
|
212 | _context.next = 22;
|
213 | return (0, _rollup["default"])({
|
214 | cwd: cwd,
|
215 | watch: watch,
|
216 | type: 'umd',
|
217 | bundleOpt: bundleOpt,
|
218 | verbose: verbose
|
219 | });
|
220 |
|
221 | case 22:
|
222 | if (!system) {
|
223 | _context.next = 25;
|
224 | break;
|
225 | }
|
226 |
|
227 | _context.next = 25;
|
228 | return (0, _rollup["default"])({
|
229 | cwd: cwd,
|
230 | watch: watch,
|
231 | type: 'system',
|
232 | bundleOpt: bundleOpt,
|
233 | verbose: verbose
|
234 | });
|
235 |
|
236 | case 25:
|
237 | if (!copy) {
|
238 | _context.next = 31;
|
239 | break;
|
240 | }
|
241 |
|
242 | if (!_stanUtils.lodash.has(copy, 'verbose')) {
|
243 | copy.verbose = verbose;
|
244 | }
|
245 |
|
246 | if (!_stanUtils.lodash.has(copy, 'cwd')) {
|
247 | copy.cwd = cwd;
|
248 | }
|
249 |
|
250 | _context.next = 30;
|
251 | return (0, _stanUtils.copyFiles)(copy);
|
252 |
|
253 | case 30:
|
254 | if (watch && copy.targets) {
|
255 | targets = Array.isArray(copy.targets) ? copy.targets : [copy.targets];
|
256 | watcher = _stanUtils.chokidar.watch(_stanUtils.lodash.flatten(targets.map(function (v) {
|
257 | return v.src;
|
258 | })), {
|
259 | ignoreInitial: true
|
260 | });
|
261 | files = [];
|
262 |
|
263 | copyChangeFile = function copyChangeFile() {
|
264 | var _files = files.slice().map(_stanUtils.slash);
|
265 |
|
266 | (0, _stanUtils.copyFiles)(_objectSpread(_objectSpread({}, copy), {}, {
|
267 | targets: targets.reduce(function (acc, _ref) {
|
268 | var src = _ref.src,
|
269 | o = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
270 | var matchFiles = (0, _stanUtils.multimatch)(_files, src);
|
271 |
|
272 | if (matchFiles.length) {
|
273 | acc.push(_objectSpread({
|
274 | src: matchFiles
|
275 | }, o));
|
276 | }
|
277 |
|
278 | return acc;
|
279 | }, [])
|
280 | })).then(function () {
|
281 | _stanUtils.lodash.eachRight(files, function (item, index) {
|
282 | if (_files.find(function (v) {
|
283 | return v === item;
|
284 | })) {
|
285 | files.splice(index, 1);
|
286 | }
|
287 | });
|
288 | });
|
289 | };
|
290 |
|
291 | debouncedCopyFiles = _stanUtils.lodash.debounce(_stanUtils.lodash.throttle(copyChangeFile, 500), 1000);
|
292 | watcher.on('all', function (event, fullPath) {
|
293 | var srcPath = _path["default"].parse(_path["default"].join(cwd, entry)).dir;
|
294 |
|
295 | var relPath = fullPath.replace(srcPath, '');
|
296 | console.log("[".concat(event, "] ").concat((0, _stanUtils.relativeNormalize)(relPath)));
|
297 | if (!_fs["default"].existsSync(fullPath)) return;
|
298 |
|
299 | if (_fs["default"].statSync(fullPath).isFile()) {
|
300 | if (!files.includes(fullPath)) files.push(fullPath);
|
301 | debouncedCopyFiles();
|
302 | }
|
303 | });
|
304 | watcher.on('error', function (error) {
|
305 | console.error('Error:', error);
|
306 | console.error(error.stack);
|
307 | });
|
308 | process.on('SIGINT', function () {
|
309 | watcher.close();
|
310 | });
|
311 | }
|
312 |
|
313 | case 31:
|
314 | case "end":
|
315 | return _context.stop();
|
316 | }
|
317 | }
|
318 | }, _loop);
|
319 | });
|
320 |
|
321 | _iterator.s();
|
322 |
|
323 | case 11:
|
324 | if ((_step = _iterator.n()).done) {
|
325 | _context2.next = 15;
|
326 | break;
|
327 | }
|
328 |
|
329 | return _context2.delegateYield(_loop(), "t0", 13);
|
330 |
|
331 | case 13:
|
332 | _context2.next = 11;
|
333 | break;
|
334 |
|
335 | case 15:
|
336 | _context2.next = 20;
|
337 | break;
|
338 |
|
339 | case 17:
|
340 | _context2.prev = 17;
|
341 | _context2.t1 = _context2["catch"](8);
|
342 |
|
343 | _iterator.e(_context2.t1);
|
344 |
|
345 | case 20:
|
346 | _context2.prev = 20;
|
347 |
|
348 | _iterator.f();
|
349 |
|
350 | return _context2.finish(20);
|
351 |
|
352 | case 23:
|
353 | if (!watch) {
|
354 | console.log(_stanUtils.chalk.cyan("Build complete ".concat((0, _stanUtils.pms)(Date.now() - start), ".")));
|
355 | }
|
356 |
|
357 | return _context2.abrupt("return");
|
358 |
|
359 | case 25:
|
360 | return _context2.abrupt("return", Promise.reject(new Error('No entry file')));
|
361 |
|
362 | case 26:
|
363 | case "end":
|
364 | return _context2.stop();
|
365 | }
|
366 | }
|
367 | }, _callee, null, [[8, 17, 20, 23]]);
|
368 | }));
|
369 | return _builder.apply(this, arguments);
|
370 | }
|
371 |
|
372 | var _default = builder;
|
373 | exports["default"] = _default;
|
374 | module.exports = exports = builder; |
\ | No newline at end of file |