UNPKG

1.57 kBJavaScriptView Raw
1function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
2
3function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
5const babel = require("./babel-core");
6
7const handleMessage = require("./handle-message");
8
9const {
10 parentPort
11} = require("worker_threads");
12
13parentPort.addListener("message", function () {
14 var _ref = _asyncToGenerator(function* ({
15 signal,
16 port,
17 action,
18 payload
19 }) {
20 let response;
21
22 try {
23 if (babel.init) yield babel.init;
24 response = {
25 result: yield handleMessage(action, payload)
26 };
27 } catch (error) {
28 response = {
29 error,
30 errorData: Object.assign({}, error)
31 };
32 }
33
34 try {
35 port.postMessage(response);
36 } catch (_unused) {
37 port.postMessage({
38 error: new Error("Cannot serialize worker response")
39 });
40 } finally {
41 port.close();
42 Atomics.store(signal, 0, 1);
43 Atomics.notify(signal, 0);
44 }
45 });
46
47 return function (_x) {
48 return _ref.apply(this, arguments);
49 };
50}());
\No newline at end of file