worker-client.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. var _class2, _worker, _signal, _markInRegisterWorker, _worker_threads;
  2. function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
  3. function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
  4. function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError("attempted to " + action + " private static field before its declaration"); } }
  5. function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } }
  6. function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
  7. function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
  8. function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
  9. function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
  10. function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
  11. function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
  12. function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
  13. const path = require("path");
  14. const ACTIONS = {
  15. GET_DEFAULT_EXTENSIONS: "GET_DEFAULT_EXTENSIONS",
  16. SET_OPTIONS: "SET_OPTIONS",
  17. TRANSFORM: "TRANSFORM",
  18. TRANSFORM_SYNC: "TRANSFORM_SYNC"
  19. };
  20. var _send = new WeakMap();
  21. var _eCache = new WeakMap();
  22. class Client {
  23. constructor(send) {
  24. _classPrivateFieldInitSpec(this, _send, {
  25. writable: true,
  26. value: void 0
  27. });
  28. _classPrivateFieldInitSpec(this, _eCache, {
  29. writable: true,
  30. value: void 0
  31. });
  32. _classPrivateFieldSet(this, _send, send);
  33. }
  34. getDefaultExtensions() {
  35. var _classPrivateFieldGet2;
  36. return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _eCache)) != null ? _classPrivateFieldGet2 : _classPrivateFieldSet(this, _eCache, _classPrivateFieldGet(this, _send).call(this, ACTIONS.GET_DEFAULT_EXTENSIONS, undefined));
  37. }
  38. setOptions(options) {
  39. return _classPrivateFieldGet(this, _send).call(this, ACTIONS.SET_OPTIONS, options);
  40. }
  41. transform(code, filename) {
  42. return _classPrivateFieldGet(this, _send).call(this, ACTIONS.TRANSFORM, {
  43. code,
  44. filename
  45. });
  46. }
  47. }
  48. exports.WorkerClient = (_worker = new WeakMap(), _signal = new WeakMap(), (_class2 = class WorkerClient extends Client {
  49. constructor() {
  50. super((action, payload) => {
  51. _classPrivateFieldGet(this, _signal)[0] = 0;
  52. const subChannel = new (_classStaticPrivateFieldSpecGet(WorkerClient, _class2, _worker_threads).MessageChannel)();
  53. _classPrivateFieldGet(this, _worker).postMessage({
  54. signal: _classPrivateFieldGet(this, _signal),
  55. port: subChannel.port1,
  56. action,
  57. payload
  58. }, [subChannel.port1]);
  59. Atomics.wait(_classPrivateFieldGet(this, _signal), 0, 0);
  60. const {
  61. message
  62. } = _classStaticPrivateFieldSpecGet(WorkerClient, _class2, _worker_threads).receiveMessageOnPort(subChannel.port2);
  63. if (message.error) throw Object.assign(message.error, message.errorData);else return message.result;
  64. });
  65. _classPrivateFieldInitSpec(this, _worker, {
  66. writable: true,
  67. value: new (_classStaticPrivateFieldSpecGet(WorkerClient, _class2, _worker_threads).Worker)(path.resolve(__dirname, "./worker/index.js"), {
  68. env: _classStaticPrivateFieldSpecGet(WorkerClient, _class2, _markInRegisterWorker).call(WorkerClient, process.env)
  69. })
  70. });
  71. _classPrivateFieldInitSpec(this, _signal, {
  72. writable: true,
  73. value: new Int32Array(new SharedArrayBuffer(4))
  74. });
  75. _classPrivateFieldGet(this, _worker).unref();
  76. }
  77. }, _markInRegisterWorker = {
  78. get: _get_markInRegisterWorker,
  79. set: void 0
  80. }, _worker_threads = {
  81. get: _get_worker_threads,
  82. set: void 0
  83. }, _class2));
  84. function _get_worker_threads() {
  85. return require("worker_threads");
  86. }
  87. function _get_markInRegisterWorker() {
  88. return require("./is-in-register-worker.js").markInRegisterWorker;
  89. }
  90. {
  91. var _class3, _handleMessage;
  92. exports.LocalClient = (_class3 = class LocalClient extends Client {
  93. constructor() {
  94. var _classStaticPrivateFi;
  95. (_classStaticPrivateFi = _classStaticPrivateFieldSpecGet(LocalClient, _class3, _handleMessage)) != null ? _classStaticPrivateFi : _classStaticPrivateFieldSpecSet(LocalClient, _class3, _handleMessage, require("./worker/handle-message.js"));
  96. super((action, payload) => {
  97. return _classStaticPrivateFieldSpecGet(LocalClient, _class3, _handleMessage).call(LocalClient, action === ACTIONS.TRANSFORM ? ACTIONS.TRANSFORM_SYNC : action, payload);
  98. });
  99. this.isLocalClient = true;
  100. }
  101. }, _handleMessage = {
  102. writable: true,
  103. value: void 0
  104. }, _class3);
  105. }
  106. //# sourceMappingURL=worker-client.js.map