UNPKG

15.2 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9exports.getBundleOpts = getBundleOpts;
10
11var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
13var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
15var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
17var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
19var _path = _interopRequireDefault(require("path"));
20
21var _fs = _interopRequireDefault(require("fs"));
22
23var _stanUtils = require("stan-utils");
24
25var _getStanConfig = _interopRequireDefault(require("./get-stan-config"));
26
27var _babel = _interopRequireDefault(require("./_babel"));
28
29var _rollup = _interopRequireDefault(require("./_rollup"));
30
31var _utils = require("./utils");
32
33var _validOptions = _interopRequireDefault(require("./valid-options"));
34
35var _excluded = ["src"];
36
37function 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
39function _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
41function _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
43function _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
45function _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
47function 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
73function builder(_x) {
74 return _builder.apply(this, arguments);
75}
76
77function _builder() {
78 _builder = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_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 = /*#__PURE__*/_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 }; // bundle esm
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
372var _default = builder;
373exports["default"] = _default;
374module.exports = exports = builder;
\No newline at end of file