@parcel/workers 2.0.0-nightly.121 → 2.0.0-nightly.1212

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/WorkerFarm.js CHANGED
@@ -11,15 +11,55 @@ Object.defineProperty(exports, "Handle", {
11
11
  });
12
12
  exports.default = void 0;
13
13
 
14
- var _assert = _interopRequireDefault(require("assert"));
14
+ function _assert() {
15
+ const data = _interopRequireDefault(require("assert"));
15
16
 
16
- var _nullthrows = _interopRequireDefault(require("nullthrows"));
17
+ _assert = function () {
18
+ return data;
19
+ };
17
20
 
18
- var _events = _interopRequireDefault(require("events"));
21
+ return data;
22
+ }
23
+
24
+ function _nullthrows() {
25
+ const data = _interopRequireDefault(require("nullthrows"));
26
+
27
+ _nullthrows = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ function _events() {
35
+ const data = _interopRequireDefault(require("events"));
36
+
37
+ _events = function () {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _core() {
45
+ const data = require("@parcel/core");
46
+
47
+ _core = function () {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _diagnostic() {
55
+ const data = _interopRequireWildcard(require("@parcel/diagnostic"));
19
56
 
20
- var _core = require("@parcel/core");
57
+ _diagnostic = function () {
58
+ return data;
59
+ };
21
60
 
22
- var _diagnostic = _interopRequireWildcard(require("@parcel/diagnostic"));
61
+ return data;
62
+ }
23
63
 
24
64
  var _Worker = _interopRequireDefault(require("./Worker"));
25
65
 
@@ -35,83 +75,59 @@ var _Profiler = _interopRequireDefault(require("./Profiler"));
35
75
 
36
76
  var _Trace = _interopRequireDefault(require("./Trace"));
37
77
 
38
- var _fs = _interopRequireDefault(require("fs"));
78
+ function _fs() {
79
+ const data = _interopRequireDefault(require("fs"));
39
80
 
40
- var _logger = _interopRequireDefault(require("@parcel/logger"));
81
+ _fs = function () {
82
+ return data;
83
+ };
41
84
 
42
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
85
+ return data;
86
+ }
43
87
 
44
- function _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; }
88
+ function _logger() {
89
+ const data = _interopRequireDefault(require("@parcel/logger"));
45
90
 
46
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
91
+ _logger = function () {
92
+ return data;
93
+ };
47
94
 
48
- 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; }
95
+ return data;
96
+ }
49
97
 
50
- 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) { _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; }
98
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
99
 
52
- function _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; }
100
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
101
+
102
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
103
 
54
- let profileId = 1;
55
104
  let referenceId = 1;
56
105
 
57
106
  /**
58
107
  * workerPath should always be defined inside farmOptions
59
108
  */
60
- class WorkerFarm extends _events.default {
109
+ class WorkerFarm extends _events().default {
110
+ callQueue = [];
111
+ ending = false;
112
+ warmWorkers = 0;
113
+ workers = new Map();
114
+ handles = new Map();
115
+ sharedReferences = new Map();
116
+ sharedReferencesByValue = new Map();
117
+ serializedSharedReferences = new Map();
118
+
61
119
  constructor(farmOptions = {}) {
62
120
  super();
63
-
64
- _defineProperty(this, "callQueue", []);
65
-
66
- _defineProperty(this, "ending", false);
67
-
68
- _defineProperty(this, "localWorker", void 0);
69
-
70
- _defineProperty(this, "options", void 0);
71
-
72
- _defineProperty(this, "run", void 0);
73
-
74
- _defineProperty(this, "warmWorkers", 0);
75
-
76
- _defineProperty(this, "workers", new Map());
77
-
78
- _defineProperty(this, "handles", new Map());
79
-
80
- _defineProperty(this, "sharedReferences", new Map());
81
-
82
- _defineProperty(this, "sharedReferencesByValue", new Map());
83
-
84
- _defineProperty(this, "profiler", void 0);
85
-
86
- _defineProperty(this, "workerApi", {
87
- callMaster: async (request, awaitResponse = true) => {
88
- // $FlowFixMe
89
- let result = await this.processRequest(_objectSpread({}, request, {
90
- awaitResponse
91
- }));
92
- return (0, _core.deserialize)((0, _core.serialize)(result));
93
- },
94
- createReverseHandle: fn => this.createReverseHandle(fn),
95
- callChild: (childId, request) => new Promise((resolve, reject) => {
96
- (0, _nullthrows.default)(this.workers.get(childId)).call(_objectSpread({}, request, {
97
- resolve,
98
- reject,
99
- retries: 0
100
- }));
101
- }),
102
- getSharedReference: ref => this.sharedReferences.get(ref),
103
- resolveSharedReference: value => this.sharedReferencesByValue.get(value)
104
- });
105
-
106
- this.options = _objectSpread({
121
+ this.options = {
107
122
  maxConcurrentWorkers: WorkerFarm.getNumWorkers(),
108
123
  maxConcurrentCallsPerWorker: WorkerFarm.getConcurrentCallsPerWorker(),
109
124
  forcedKillTime: 500,
110
125
  warmWorkers: false,
111
126
  useLocalWorker: true,
112
127
  // TODO: setting this to false makes some tests fail, figure out why
113
- backend: (0, _backend.detectBackend)()
114
- }, farmOptions);
128
+ backend: (0, _backend.detectBackend)(),
129
+ ...farmOptions
130
+ };
115
131
 
116
132
  if (!this.options.workerPath) {
117
133
  throw new Error('Please provide a worker path!');
@@ -119,10 +135,35 @@ class WorkerFarm extends _events.default {
119
135
 
120
136
 
121
137
  this.localWorker = require(this.options.workerPath);
138
+ this.localWorkerInit = this.localWorker.childInit != null ? this.localWorker.childInit() : null;
122
139
  this.run = this.createHandle('run');
123
140
  this.startMaxWorkers();
124
141
  }
125
142
 
143
+ workerApi = {
144
+ callMaster: async (request, awaitResponse = true) => {
145
+ // $FlowFixMe
146
+ let result = await this.processRequest({ ...request,
147
+ awaitResponse
148
+ });
149
+ return (0, _core().deserialize)((0, _core().serialize)(result));
150
+ },
151
+ createReverseHandle: fn => this.createReverseHandle(fn),
152
+ callChild: (childId, request) => new Promise((resolve, reject) => {
153
+ (0, _nullthrows().default)(this.workers.get(childId)).call({ ...request,
154
+ resolve,
155
+ reject,
156
+ retries: 0
157
+ });
158
+ }),
159
+ runHandle: (handle, args) => this.workerApi.callChild((0, _nullthrows().default)(handle.childId), {
160
+ handle: handle.id,
161
+ args
162
+ }),
163
+ getSharedReference: ref => this.sharedReferences.get(ref),
164
+ resolveSharedReference: value => this.sharedReferencesByValue.get(value)
165
+ };
166
+
126
167
  warmupWorker(method, args) {
127
168
  // Workers are already stopping
128
169
  if (this.ending) {
@@ -149,19 +190,31 @@ class WorkerFarm extends _events.default {
149
190
  return this.options.maxConcurrentWorkers > 0 || !this.options.useLocalWorker;
150
191
  }
151
192
 
152
- createHandle(method) {
153
- return (...args) => {
193
+ createHandle(method, useMainThread = false) {
194
+ return async (...args) => {
154
195
  // Child process workers are slow to start (~600ms).
155
196
  // While we're waiting, just run on the main thread.
156
197
  // This significantly speeds up startup time.
157
- if (this.shouldUseRemoteWorkers()) {
198
+ if (this.shouldUseRemoteWorkers() && !useMainThread) {
158
199
  return this.addCall(method, [...args, false]);
159
200
  } else {
160
201
  if (this.options.warmWorkers && this.shouldStartRemoteWorkers()) {
161
202
  this.warmupWorker(method, args);
162
203
  }
163
204
 
164
- let processedArgs = (0, _core.restoreDeserializedObject)((0, _core.prepareForSerialization)([...args, false]));
205
+ let processedArgs;
206
+
207
+ if (!useMainThread) {
208
+ processedArgs = (0, _core().restoreDeserializedObject)((0, _core().prepareForSerialization)([...args, false]));
209
+ } else {
210
+ processedArgs = args;
211
+ }
212
+
213
+ if (this.localWorkerInit != null) {
214
+ await this.localWorkerInit;
215
+ this.localWorkerInit = null;
216
+ }
217
+
165
218
  return this.localWorker[method](this.workerApi, ...processedArgs);
166
219
  }
167
220
  };
@@ -171,6 +224,8 @@ class WorkerFarm extends _events.default {
171
224
  // Handle ipc errors
172
225
  if (error.code === 'ERR_IPC_CHANNEL_CLOSED') {
173
226
  return this.stopWorker(worker);
227
+ } else {
228
+ _logger().default.error(error, '@parcel/workers');
174
229
  }
175
230
  }
176
231
 
@@ -178,9 +233,10 @@ class WorkerFarm extends _events.default {
178
233
  let worker = new _Worker.default({
179
234
  forcedKillTime: this.options.forcedKillTime,
180
235
  backend: this.options.backend,
181
- patchConsole: this.options.patchConsole
236
+ shouldPatchConsole: this.options.shouldPatchConsole,
237
+ sharedReferences: this.sharedReferences
182
238
  });
183
- worker.fork((0, _nullthrows.default)(this.options.workerPath));
239
+ worker.fork((0, _nullthrows().default)(this.options.workerPath));
184
240
  worker.on('request', data => this.processRequest(data, worker));
185
241
  worker.on('ready', () => this.processQueue());
186
242
  worker.on('response', () => this.processQueue());
@@ -215,7 +271,9 @@ class WorkerFarm extends _events.default {
215
271
  this.startChild();
216
272
  }
217
273
 
218
- for (let worker of this.workers.values()) {
274
+ let workers = [...this.workers.values()].sort((a, b) => a.calls.size - b.calls.size);
275
+
276
+ for (let worker of workers) {
219
277
  if (!this.callQueue.length) {
220
278
  break;
221
279
  }
@@ -225,9 +283,19 @@ class WorkerFarm extends _events.default {
225
283
  }
226
284
 
227
285
  if (worker.calls.size < this.options.maxConcurrentCallsPerWorker) {
228
- worker.call(this.callQueue.shift());
286
+ this.callWorker(worker, this.callQueue.shift());
287
+ }
288
+ }
289
+ }
290
+
291
+ async callWorker(worker, call) {
292
+ for (let ref of this.sharedReferences.keys()) {
293
+ if (!worker.sentSharedReferences.has(ref)) {
294
+ await worker.sendSharedReference(ref, this.getSerializedSharedReference(ref));
229
295
  }
230
296
  }
297
+
298
+ worker.call(call);
231
299
  }
232
300
 
233
301
  async processRequest(data, worker) {
@@ -242,7 +310,9 @@ class WorkerFarm extends _events.default {
242
310
  let mod;
243
311
 
244
312
  if (handleId != null) {
245
- mod = (0, _nullthrows.default)(this.handles.get(handleId)).fn;
313
+ var _this$handles$get;
314
+
315
+ mod = (0, _nullthrows().default)((_this$handles$get = this.handles.get(handleId)) === null || _this$handles$get === void 0 ? void 0 : _this$handles$get.fn);
246
316
  } else if (location) {
247
317
  // $FlowFixMe this must be dynamic
248
318
  mod = require(location);
@@ -261,27 +331,26 @@ class WorkerFarm extends _events.default {
261
331
  idx,
262
332
  type: 'response',
263
333
  contentType: 'error',
264
- content: (0, _diagnostic.anyToDiagnostic)(e)
334
+ content: (0, _diagnostic().anyToDiagnostic)(e)
265
335
  });
266
336
 
267
337
  let result;
268
338
 
269
339
  if (method == null) {
270
340
  try {
271
- result = responseFromContent((await mod(...args)));
341
+ result = responseFromContent(await mod(...args));
272
342
  } catch (e) {
273
343
  result = errorResponseFromError(e);
274
344
  }
275
345
  } else {
276
346
  // ESModule default interop
277
- // $FlowFixMe
278
347
  if (mod.__esModule && !mod[method] && mod.default) {
279
348
  mod = mod.default;
280
349
  }
281
350
 
282
351
  try {
283
352
  // $FlowFixMe
284
- result = responseFromContent((await mod[method](...args)));
353
+ result = responseFromContent(await mod[method](...args));
285
354
  } catch (e) {
286
355
  result = errorResponseFromError(e);
287
356
  }
@@ -292,7 +361,7 @@ class WorkerFarm extends _events.default {
292
361
  worker.send(result);
293
362
  } else {
294
363
  if (result.contentType === 'error') {
295
- throw new _diagnostic.default({
364
+ throw new (_diagnostic().default)({
296
365
  diagnostic: result.content
297
366
  });
298
367
  }
@@ -321,6 +390,7 @@ class WorkerFarm extends _events.default {
321
390
 
322
391
  async end() {
323
392
  this.ending = true;
393
+ await Promise.all(Array.from(this.workers.values()).map(worker => this.stopWorker(worker)));
324
394
 
325
395
  for (let handle of this.handles.values()) {
326
396
  handle.dispose();
@@ -329,7 +399,6 @@ class WorkerFarm extends _events.default {
329
399
  this.handles = new Map();
330
400
  this.sharedReferences = new Map();
331
401
  this.sharedReferencesByValue = new Map();
332
- await Promise.all(Array.from(this.workers.values()).map(worker => this.stopWorker(worker)));
333
402
  this.ending = false;
334
403
  }
335
404
 
@@ -350,46 +419,42 @@ class WorkerFarm extends _events.default {
350
419
 
351
420
  createReverseHandle(fn) {
352
421
  let handle = new _Handle.default({
353
- fn,
354
- workerApi: this.workerApi
422
+ fn
355
423
  });
356
424
  this.handles.set(handle.id, handle);
357
425
  return handle;
358
426
  }
359
427
 
360
- async createSharedReference(value) {
428
+ createSharedReference(value, isCacheable = true) {
361
429
  let ref = referenceId++;
362
430
  this.sharedReferences.set(ref, value);
363
431
  this.sharedReferencesByValue.set(value, ref);
364
- let promises = [];
365
432
 
366
- for (let worker of this.workers.values()) {
367
- promises.push(new Promise((resolve, reject) => {
368
- worker.call({
369
- method: 'createSharedReference',
370
- args: [ref, value],
371
- resolve,
372
- reject,
373
- retries: 0
374
- });
375
- }));
433
+ if (!isCacheable) {
434
+ this.serializedSharedReferences.set(ref, null);
376
435
  }
377
436
 
378
- await Promise.all(promises);
379
437
  return {
380
438
  ref,
381
439
  dispose: () => {
382
440
  this.sharedReferences.delete(ref);
383
441
  this.sharedReferencesByValue.delete(value);
442
+ this.serializedSharedReferences.delete(ref);
384
443
  let promises = [];
385
444
 
386
445
  for (let worker of this.workers.values()) {
446
+ if (!worker.sentSharedReferences.has(ref)) {
447
+ continue;
448
+ }
449
+
450
+ worker.sentSharedReferences.delete(ref);
387
451
  promises.push(new Promise((resolve, reject) => {
388
452
  worker.call({
389
453
  method: 'deleteSharedReference',
390
454
  args: [ref],
391
455
  resolve,
392
456
  reject,
457
+ skipReadyCheck: true,
393
458
  retries: 0
394
459
  });
395
460
  }));
@@ -400,6 +465,24 @@ class WorkerFarm extends _events.default {
400
465
  };
401
466
  }
402
467
 
468
+ getSerializedSharedReference(ref) {
469
+ let cached = this.serializedSharedReferences.get(ref);
470
+
471
+ if (cached) {
472
+ return cached;
473
+ }
474
+
475
+ let value = this.sharedReferences.get(ref);
476
+ let buf = (0, _core().serialize)(value).buffer; // If the reference was created with the isCacheable option set to false,
477
+ // serializedSharedReferences will contain `null` as the value.
478
+
479
+ if (cached !== null) {
480
+ this.serializedSharedReferences.set(ref, buf);
481
+ }
482
+
483
+ return buf;
484
+ }
485
+
403
486
  async startProfile() {
404
487
  let promises = [];
405
488
 
@@ -410,7 +493,8 @@ class WorkerFarm extends _events.default {
410
493
  args: [],
411
494
  resolve,
412
495
  reject,
413
- retries: 0
496
+ retries: 0,
497
+ skipReadyCheck: true
414
498
  });
415
499
  }));
416
500
  }
@@ -436,15 +520,16 @@ class WorkerFarm extends _events.default {
436
520
  args: [],
437
521
  resolve,
438
522
  reject,
439
- retries: 0
523
+ retries: 0,
524
+ skipReadyCheck: true
440
525
  });
441
526
  }));
442
527
  }
443
528
 
444
529
  var profiles = await Promise.all(promises);
445
530
  let trace = new _Trace.default();
446
- let filename = `profile-${profileId++}.trace`;
447
- let stream = trace.pipe(_fs.default.createWriteStream(filename));
531
+ let filename = `profile-${getTimeId()}.trace`;
532
+ let stream = trace.pipe(_fs().default.createWriteStream(filename));
448
533
 
449
534
  for (let profile of profiles) {
450
535
  trace.addCPUProfile(names.shift(), profile);
@@ -455,14 +540,60 @@ class WorkerFarm extends _events.default {
455
540
  stream.once('finish', resolve);
456
541
  });
457
542
 
458
- _logger.default.info({
543
+ _logger().default.info({
459
544
  origin: '@parcel/workers',
460
- message: `Wrote profile to ${filename}`
545
+ message: (0, _diagnostic().md)`Wrote profile to ${filename}`
461
546
  });
462
547
  }
463
548
 
549
+ async callAllWorkers(method, args) {
550
+ let promises = [];
551
+
552
+ for (let worker of this.workers.values()) {
553
+ promises.push(new Promise((resolve, reject) => {
554
+ worker.call({
555
+ method,
556
+ args,
557
+ resolve,
558
+ reject,
559
+ retries: 0
560
+ });
561
+ }));
562
+ }
563
+
564
+ promises.push(this.localWorker[method](this.workerApi, ...args));
565
+ await Promise.all(promises);
566
+ }
567
+
568
+ async takeHeapSnapshot() {
569
+ let snapshotId = getTimeId();
570
+
571
+ try {
572
+ let snapshotPaths = await Promise.all([...this.workers.values()].map(worker => new Promise((resolve, reject) => {
573
+ worker.call({
574
+ method: 'takeHeapSnapshot',
575
+ args: [snapshotId],
576
+ resolve,
577
+ reject,
578
+ retries: 0,
579
+ skipReadyCheck: true
580
+ });
581
+ })));
582
+
583
+ _logger().default.info({
584
+ origin: '@parcel/workers',
585
+ message: (0, _diagnostic().md)`Wrote heap snapshots to the following paths:\n${snapshotPaths.join('\n')}`
586
+ });
587
+ } catch {
588
+ _logger().default.error({
589
+ origin: '@parcel/workers',
590
+ message: 'Unable to take heap snapshots. Note: requires Node 11.13.0+'
591
+ });
592
+ }
593
+ }
594
+
464
595
  static getNumWorkers() {
465
- return process.env.PARCEL_WORKERS ? parseInt(process.env.PARCEL_WORKERS, 10) : (0, _cpuCount.default)();
596
+ return process.env.PARCEL_WORKERS ? parseInt(process.env.PARCEL_WORKERS, 10) : Math.ceil((0, _cpuCount.default)() / 2);
466
597
  }
467
598
 
468
599
  static isWorker() {
@@ -470,14 +601,19 @@ class WorkerFarm extends _events.default {
470
601
  }
471
602
 
472
603
  static getWorkerApi() {
473
- (0, _assert.default)(_childState.child != null, 'WorkerFarm.getWorkerApi can only be called within workers');
604
+ (0, _assert().default)(_childState.child != null, 'WorkerFarm.getWorkerApi can only be called within workers');
474
605
  return _childState.child.workerApi;
475
606
  }
476
607
 
477
608
  static getConcurrentCallsPerWorker() {
478
- return parseInt(process.env.PARCEL_MAX_CONCURRENT_CALLS, 10) || 5;
609
+ return parseInt(process.env.PARCEL_MAX_CONCURRENT_CALLS, 10) || 30;
479
610
  }
480
611
 
481
612
  }
482
613
 
483
- exports.default = WorkerFarm;
614
+ exports.default = WorkerFarm;
615
+
616
+ function getTimeId() {
617
+ let now = new Date();
618
+ return String(now.getFullYear()) + String(now.getMonth() + 1).padStart(2, '0') + String(now.getDate()).padStart(2, '0') + '-' + String(now.getHours()).padStart(2, '0') + String(now.getMinutes()).padStart(2, '0') + String(now.getSeconds()).padStart(2, '0');
619
+ }
package/lib/bus.js CHANGED
@@ -5,13 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _events = _interopRequireDefault(require("events"));
8
+ function _events() {
9
+ const data = _interopRequireDefault(require("events"));
10
+
11
+ _events = function () {
12
+ return data;
13
+ };
14
+
15
+ return data;
16
+ }
9
17
 
10
18
  var _childState = require("./childState");
11
19
 
12
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
21
 
14
- class Bus extends _events.default {
22
+ class Bus extends _events().default {
15
23
  emit(event, ...args) {
16
24
  if (_childState.child) {
17
25
  _childState.child.workerApi.callMaster({