UNPKG

5.13 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.reportWorker = reportWorker;
7exports.report = report;
8exports.default = void 0;
9
10var _assert = _interopRequireDefault(require("assert"));
11
12var _Bundle = require("./public/Bundle");
13
14var _workers = _interopRequireWildcard(require("@parcel/workers"));
15
16var _ParcelConfig = _interopRequireDefault(require("./ParcelConfig"));
17
18var _logger = _interopRequireWildcard(require("@parcel/logger"));
19
20var _PluginOptions = _interopRequireDefault(require("./public/PluginOptions"));
21
22var _BundleGraph = _interopRequireDefault(require("./BundleGraph"));
23
24function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
25
26function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
28function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
30function 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; }
31
32function _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) { _defineProperty(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; }
33
34function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
35
36class ReporterRunner {
37 constructor(opts) {
38 _defineProperty(this, "config", void 0);
39
40 _defineProperty(this, "options", void 0);
41
42 _defineProperty(this, "pluginOptions", void 0);
43
44 this.config = opts.config;
45 this.options = opts.options;
46 this.pluginOptions = new _PluginOptions.default(this.options);
47
48 _logger.default.onLog(event => this.report(event));
49
50 _workers.bus.on('reporterEvent', event => {
51 if (event.type === 'buildProgress' && (event.phase === 'optimizing' || event.phase === 'packaging') && !(event.bundle instanceof _Bundle.NamedBundle)) {
52 // Convert any internal bundles back to their public equivalents as reporting
53 // is public api
54 let bundleGraph = opts.workerFarm.workerApi.getSharedReference(event.bundleGraphRef);
55 (0, _assert.default)(bundleGraph instanceof _BundleGraph.default);
56 this.report(_objectSpread({}, event, {
57 bundle: new _Bundle.NamedBundle(event.bundle, bundleGraph, this.options)
58 }));
59 return;
60 }
61
62 this.report(event);
63 });
64
65 if (this.options.patchConsole) {
66 (0, _logger.patchConsole)();
67 } else {
68 (0, _logger.unpatchConsole)();
69 }
70 }
71
72 async report(event) {
73 let reporters = await this.config.getReporters();
74
75 for (let reporter of reporters) {
76 try {
77 await reporter.plugin.report({
78 event,
79 options: this.pluginOptions,
80 logger: new _logger.PluginLogger({
81 origin: reporter.name
82 })
83 });
84 } catch (e) {
85 // We shouldn't emit a report event here as we will cause infinite loops...
86 _logger.INTERNAL_ORIGINAL_CONSOLE.error(e);
87 }
88 }
89 }
90
91}
92
93exports.default = ReporterRunner;
94
95function reportWorker(workerApi, event) {
96 if (event.type === 'buildProgress' && (event.phase === 'optimizing' || event.phase === 'packaging')) {
97 // Convert any public api bundles to their internal equivalents for
98 // easy serialization
99 _workers.bus.emit('reporterEvent', _objectSpread({}, event, {
100 bundle: (0, _Bundle.bundleToInternalBundle)(event.bundle),
101 bundleGraphRef: workerApi.resolveSharedReference((0, _Bundle.bundleToInternalBundleGraph)(event.bundle))
102 }));
103
104 return;
105 }
106
107 _workers.bus.emit('reporterEvent', event);
108}
109
110function report(event) {
111 _workers.bus.emit('reporterEvent', event);
112}
\No newline at end of file