UNPKG

8.73 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = rollupBuild;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
18var _rollup = require("rollup");
19
20var _stanUtils = require("stan-utils");
21
22var _getRollupConfig = _interopRequireDefault(require("./get-rollup-config"));
23
24var _excluded = ["output"];
25
26function 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; }
27
28function _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; }
29
30function _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; } } }; }
31
32function _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); }
33
34function _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; }
35
36function rollupBuild(_x) {
37 return _rollupBuild.apply(this, arguments);
38}
39/**
40 * rollup error
41 * @param err
42 * @param recover
43 * https://github.com/rollup/rollup/blob/8ca712d68bd6f6038ee219c4002cf33d6f4e83ed/cli/logging.ts
44 */
45
46
47function _rollupBuild() {
48 _rollupBuild = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(opts) {
49 var cwd, type, bundleOpt, target, _opts$verbose, verbose, rollupConfigs, _iterator, _step, rollupConfig, output, input, spinner, bundle, err;
50
51 return _regenerator["default"].wrap(function _callee$(_context) {
52 while (1) {
53 switch (_context.prev = _context.next) {
54 case 0:
55 cwd = opts.cwd, type = opts.type, bundleOpt = opts.bundleOpt, target = opts.target, _opts$verbose = opts.verbose, verbose = _opts$verbose === void 0 ? false : _opts$verbose;
56 rollupConfigs = (0, _getRollupConfig["default"])({
57 cwd: cwd,
58 bundleOpt: bundleOpt,
59 type: type,
60 target: target,
61 verbose: verbose
62 });
63 _iterator = _createForOfIteratorHelper(rollupConfigs);
64 _context.prev = 3;
65
66 _iterator.s();
67
68 case 5:
69 if ((_step = _iterator.n()).done) {
70 _context.next = 30;
71 break;
72 }
73
74 rollupConfig = _step.value;
75
76 if (!opts.watch) {
77 _context.next = 11;
78 break;
79 }
80
81 (function () {
82 var watcher = (0, _rollup.watch)([_objectSpread(_objectSpread({}, rollupConfig), {}, {
83 watch: {}
84 })]);
85 watcher.on('event', function (event) {
86 if (event.code === 'START') {
87 console.log(_stanUtils.chalk.cyan("".concat(_stanUtils.chalk.greenBright("[".concat(type, "]")), " waiting for changes..")));
88 } else if (event.code === 'BUNDLE_START') {
89 console.log(_stanUtils.chalk.cyan("Compile ".concat(_stanUtils.chalk.bold(Array.isArray(event.input) ? event.input.map(_stanUtils.relativeId).join(', ') : (0, _stanUtils.relativeId)(event.input)), " \u2192 ").concat(_stanUtils.chalk.bold(event.output.map(_stanUtils.relativeId).join(', ')), "...")));
90 } else if (event.code === 'BUNDLE_END') {
91 console.log(_stanUtils.chalk.green("Created ".concat(_stanUtils.chalk.bold(event.output.map(_stanUtils.relativeId).join(', ')), " in ").concat(_stanUtils.chalk.bold((0, _stanUtils.pms)(event.duration)))));
92 } else if (event.code === 'ERROR') {
93 handleError(event.error, true);
94 }
95 });
96 process.on('SIGINT', function () {
97 watcher.close();
98 });
99 })();
100
101 _context.next = 28;
102 break;
103
104 case 11:
105 output = rollupConfig.output, input = (0, _objectWithoutProperties2["default"])(rollupConfig, _excluded);
106 spinner = (0, _stanUtils.ora)("Compile ".concat(_stanUtils.chalk.green((0, _stanUtils.relativeNormalize)(input.input)), " -> ").concat(_stanUtils.chalk.yellow((0, _stanUtils.relativeNormalize)(output.file)))).start();
107 _context.prev = 13;
108 _context.next = 16;
109 return (0, _rollup.rollup)(input);
110
111 case 16:
112 bundle = _context.sent;
113 _context.next = 19;
114 return bundle.write(output);
115
116 case 19:
117 spinner.succeed();
118 _context.next = 28;
119 break;
120
121 case 22:
122 _context.prev = 22;
123 _context.t0 = _context["catch"](13);
124 err = _context.t0;
125 spinner.fail();
126 handleError(err, true);
127 return _context.abrupt("return", Promise.reject(err));
128
129 case 28:
130 _context.next = 5;
131 break;
132
133 case 30:
134 _context.next = 35;
135 break;
136
137 case 32:
138 _context.prev = 32;
139 _context.t1 = _context["catch"](3);
140
141 _iterator.e(_context.t1);
142
143 case 35:
144 _context.prev = 35;
145
146 _iterator.f();
147
148 return _context.finish(35);
149
150 case 38:
151 case "end":
152 return _context.stop();
153 }
154 }
155 }, _callee, null, [[3, 32, 35, 38], [13, 22]]);
156 }));
157 return _rollupBuild.apply(this, arguments);
158}
159
160function handleError(err) {
161 var recover = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
162 var description = err.message || err;
163 if (err.name) description = "".concat(err.name, ": ").concat(description);
164 var message = (err.plugin ? "(plugin ".concat(err.plugin, ") ").concat(description) : description) || err;
165 console.log(_stanUtils.chalk.bold(_stanUtils.chalk.red("[!] ".concat(_stanUtils.chalk.bold(message.toString())))));
166
167 if (err.url) {
168 console.log(_stanUtils.chalk.cyan(err.url));
169 }
170
171 if (err.loc) {
172 console.log("".concat((0, _stanUtils.relativeId)(err.loc.file || err.id), " (").concat(err.loc.line, ":").concat(err.loc.column, ")"));
173 } else if (err.id) {
174 console.log((0, _stanUtils.relativeId)(err.id));
175 }
176
177 if (err.frame) {
178 console.log(_stanUtils.chalk.dim(err.frame));
179 }
180
181 if (err.stack) {
182 console.log(_stanUtils.chalk.dim(err.stack));
183 }
184
185 console.log('');
186 if (!recover) process.exit(1);
187}
\No newline at end of file