@xylabs/threads 3.5.4 → 3.5.6

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.
@@ -1,13 +1,19 @@
1
- import DebugLogger from 'debug';
2
- import { Observable } from 'observable-fns';
3
- import { deserialize } from '../common';
4
- import { createPromiseWithResolver } from '../promise';
5
- import { $errors, $events, $terminate, $worker } from '../symbols';
6
- import { WorkerEventType, } from '../types/master';
7
- import { createProxyFunction, createProxyModule } from './invocation-proxy';
8
- const debugMessages = DebugLogger('threads:master:messages');
9
- const debugSpawn = DebugLogger('threads:master:spawn');
10
- const debugThreadUtils = DebugLogger('threads:master:thread-utils');
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.spawn = spawn;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const observable_fns_1 = require("observable-fns");
9
+ const common_1 = require("../common");
10
+ const promise_1 = require("../promise");
11
+ const symbols_1 = require("../symbols");
12
+ const master_1 = require("../types/master");
13
+ const invocation_proxy_1 = require("./invocation-proxy");
14
+ const debugMessages = (0, debug_1.default)('threads:master:messages');
15
+ const debugSpawn = (0, debug_1.default)('threads:master:spawn');
16
+ const debugThreadUtils = (0, debug_1.default)('threads:master:thread-utils');
11
17
  const isInitMessage = (data) => data && data.type === 'init';
12
18
  const isUncaughtErrorMessage = (data) => data && data.type === 'uncaughtError';
13
19
  const initMessageTimeout = typeof process !== 'undefined' && process.env !== undefined && process.env.THREADS_WORKER_INIT_TIMEOUT ?
@@ -32,18 +38,18 @@ function receiveInitMessage(worker) {
32
38
  }
33
39
  else if (isUncaughtErrorMessage(event.data)) {
34
40
  worker.removeEventListener('message', messageHandler);
35
- reject(deserialize(event.data.error));
41
+ reject((0, common_1.deserialize)(event.data.error));
36
42
  }
37
43
  });
38
44
  worker.addEventListener('message', messageHandler);
39
45
  });
40
46
  }
41
47
  function createEventObservable(worker, workerTermination) {
42
- return new Observable((observer) => {
48
+ return new observable_fns_1.Observable((observer) => {
43
49
  const messageHandler = ((messageEvent) => {
44
50
  const workerEvent = {
45
51
  data: messageEvent.data,
46
- type: WorkerEventType.message,
52
+ type: master_1.WorkerEventType.message,
47
53
  };
48
54
  observer.next(workerEvent);
49
55
  });
@@ -51,7 +57,7 @@ function createEventObservable(worker, workerTermination) {
51
57
  debugThreadUtils('Unhandled promise rejection event in thread:', errorEvent);
52
58
  const workerEvent = {
53
59
  error: new Error(errorEvent.reason),
54
- type: WorkerEventType.internalError,
60
+ type: master_1.WorkerEventType.internalError,
55
61
  };
56
62
  observer.next(workerEvent);
57
63
  });
@@ -59,7 +65,7 @@ function createEventObservable(worker, workerTermination) {
59
65
  worker.addEventListener('unhandledrejection', rejectionHandler);
60
66
  workerTermination.then(() => {
61
67
  const terminationEvent = {
62
- type: WorkerEventType.termination,
68
+ type: master_1.WorkerEventType.termination,
63
69
  };
64
70
  worker.removeEventListener('message', messageHandler);
65
71
  worker.removeEventListener('unhandledrejection', rejectionHandler);
@@ -69,7 +75,7 @@ function createEventObservable(worker, workerTermination) {
69
75
  });
70
76
  }
71
77
  function createTerminator(worker) {
72
- const [termination, resolver] = createPromiseWithResolver();
78
+ const [termination, resolver] = (0, promise_1.createPromiseWithResolver)();
73
79
  const terminate = async () => {
74
80
  debugThreadUtils('Terminating worker');
75
81
  await worker.terminate();
@@ -79,16 +85,16 @@ function createTerminator(worker) {
79
85
  }
80
86
  function setPrivateThreadProps(raw, worker, workerEvents, terminate) {
81
87
  const workerErrors = workerEvents
82
- .filter((event) => event.type === WorkerEventType.internalError)
88
+ .filter((event) => event.type === master_1.WorkerEventType.internalError)
83
89
  .map((errorEvent) => errorEvent.error);
84
90
  return Object.assign(raw, {
85
- [$errors]: workerErrors,
86
- [$events]: workerEvents,
87
- [$terminate]: terminate,
88
- [$worker]: worker,
91
+ [symbols_1.$errors]: workerErrors,
92
+ [symbols_1.$events]: workerEvents,
93
+ [symbols_1.$terminate]: terminate,
94
+ [symbols_1.$worker]: worker,
89
95
  });
90
96
  }
91
- export async function spawn(worker, options) {
97
+ async function spawn(worker, options) {
92
98
  debugSpawn('Initializing new thread');
93
99
  const timeout = options && options.timeout ? options.timeout : initMessageTimeout;
94
100
  const initMessage = await withTimeout(receiveInitMessage(worker), timeout, `Timeout: Did not receive an init message from worker after ${timeout}ms. Make sure the worker calls expose().`);
@@ -96,11 +102,11 @@ export async function spawn(worker, options) {
96
102
  const { termination, terminate } = createTerminator(worker);
97
103
  const events = createEventObservable(worker, termination);
98
104
  if (exposed.type === 'function') {
99
- const proxy = createProxyFunction(worker);
105
+ const proxy = (0, invocation_proxy_1.createProxyFunction)(worker);
100
106
  return setPrivateThreadProps(proxy, worker, events, terminate);
101
107
  }
102
108
  else if (exposed.type === 'module') {
103
- const proxy = createProxyModule(worker, exposed.methods);
109
+ const proxy = (0, invocation_proxy_1.createProxyModule)(worker, exposed.methods);
104
110
  return setPrivateThreadProps(proxy, worker, events, terminate);
105
111
  }
106
112
  else {
@@ -1,15 +1,18 @@
1
- import { $errors, $events, $terminate } from '../symbols';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Thread = void 0;
4
+ const symbols_1 = require("../symbols");
2
5
  function fail(message) {
3
6
  throw new Error(message);
4
7
  }
5
- export const Thread = {
8
+ exports.Thread = {
6
9
  errors(thread) {
7
- return thread[$errors] || fail('Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.');
10
+ return thread[symbols_1.$errors] || fail('Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.');
8
11
  },
9
12
  events(thread) {
10
- return thread[$events] || fail('Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.');
13
+ return thread[symbols_1.$events] || fail('Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.');
11
14
  },
12
15
  terminate(thread) {
13
- return thread[$terminate]();
16
+ return thread[symbols_1.$terminate]();
14
17
  },
15
18
  };
@@ -1,4 +1,7 @@
1
- import { Observable } from 'observable-fns';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservablePromise = void 0;
4
+ const observable_fns_1 = require("observable-fns");
2
5
  const doNothing = () => { };
3
6
  const returnInput = (input) => input;
4
7
  const runDeferred = (fn) => Promise.resolve().then(fn);
@@ -8,7 +11,7 @@ function fail(error) {
8
11
  function isThenable(thing) {
9
12
  return thing && typeof thing.then === 'function';
10
13
  }
11
- export class ObservablePromise extends Observable {
14
+ class ObservablePromise extends observable_fns_1.Observable {
12
15
  [Symbol.toStringTag] = '[object ObservablePromise]';
13
16
  initHasRun = false;
14
17
  fulfillmentCallbacks = [];
@@ -126,3 +129,4 @@ export class ObservablePromise extends Observable {
126
129
  : super.from(thing);
127
130
  }
128
131
  }
132
+ exports.ObservablePromise = ObservablePromise;
@@ -1,6 +1,9 @@
1
- import { Observable } from 'observable-fns';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Observable = exports.Subject = void 0;
4
+ const observable_fns_1 = require("observable-fns");
2
5
  const $observers = Symbol('observers');
3
- export class Subject extends Observable {
6
+ class Subject extends observable_fns_1.Observable {
4
7
  [$observers];
5
8
  constructor() {
6
9
  super((observer) => {
@@ -25,4 +28,6 @@ export class Subject extends Observable {
25
28
  observer.next(value);
26
29
  }
27
30
  }
28
- export { Observable } from 'observable-fns';
31
+ exports.Subject = Subject;
32
+ var observable_fns_2 = require("observable-fns");
33
+ Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return observable_fns_2.Observable; } });
@@ -1,4 +1,7 @@
1
- export function allSettled(values) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allSettled = allSettled;
4
+ function allSettled(values) {
2
5
  return Promise.all(values.map((item) => {
3
6
  const onFulfill = (value) => {
4
7
  return { status: 'fulfilled', value };
@@ -1,5 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPromiseWithResolver = createPromiseWithResolver;
1
4
  const doNothing = () => undefined;
2
- export function createPromiseWithResolver() {
5
+ function createPromiseWithResolver() {
3
6
  let alreadyResolved = false;
4
7
  let resolvedTo;
5
8
  let resolver = doNothing;
@@ -1,4 +1,8 @@
1
- export function extendSerializer(extend, implementation) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultSerializer = void 0;
4
+ exports.extendSerializer = extendSerializer;
5
+ function extendSerializer(extend, implementation) {
2
6
  const fallbackDeserializer = extend.deserialize.bind(extend);
3
7
  const fallbackSerializer = extend.serialize.bind(extend);
4
8
  return {
@@ -27,7 +31,7 @@ const DefaultErrorSerializer = {
27
31
  },
28
32
  };
29
33
  const isSerializedError = (thing) => thing && typeof thing === 'object' && '__error_marker' in thing && thing.__error_marker === '$$error';
30
- export const DefaultSerializer = {
34
+ exports.DefaultSerializer = {
31
35
  deserialize(message) {
32
36
  return isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message;
33
37
  },
@@ -1,5 +1,8 @@
1
- export const $errors = Symbol('thread.errors');
2
- export const $events = Symbol('thread.events');
3
- export const $terminate = Symbol('thread.terminate');
4
- export const $transferable = Symbol('thread.transferable');
5
- export const $worker = Symbol('thread.worker');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$worker = exports.$transferable = exports.$terminate = exports.$events = exports.$errors = void 0;
4
+ exports.$errors = Symbol('thread.errors');
5
+ exports.$events = Symbol('thread.events');
6
+ exports.$terminate = Symbol('thread.terminate');
7
+ exports.$transferable = Symbol('thread.transferable');
8
+ exports.$worker = Symbol('thread.worker');
@@ -1,20 +1,24 @@
1
- import { $transferable } from './symbols';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransferDescriptor = isTransferDescriptor;
4
+ exports.Transfer = Transfer;
5
+ const symbols_1 = require("./symbols");
2
6
  function isTransferable(thing) {
3
7
  if (!thing || typeof thing !== 'object')
4
8
  return false;
5
9
  return true;
6
10
  }
7
- export function isTransferDescriptor(thing) {
8
- return thing && typeof thing === 'object' && thing[$transferable];
11
+ function isTransferDescriptor(thing) {
12
+ return thing && typeof thing === 'object' && thing[symbols_1.$transferable];
9
13
  }
10
- export function Transfer(payload, transferables) {
14
+ function Transfer(payload, transferables) {
11
15
  if (!transferables) {
12
16
  if (!isTransferable(payload))
13
17
  throw new Error('Not transferable');
14
18
  transferables = [payload];
15
19
  }
16
20
  return {
17
- [$transferable]: true,
21
+ [symbols_1.$transferable]: true,
18
22
  send: payload,
19
23
  transferables,
20
24
  };
@@ -1,7 +1,10 @@
1
- import { $errors, $events, $terminate, $worker } from '../symbols';
2
- export var WorkerEventType;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkerEventType = void 0;
4
+ const symbols_1 = require("../symbols");
5
+ var WorkerEventType;
3
6
  (function (WorkerEventType) {
4
7
  WorkerEventType["internalError"] = "internalError";
5
8
  WorkerEventType["message"] = "message";
6
9
  WorkerEventType["termination"] = "termination";
7
- })(WorkerEventType || (WorkerEventType = {}));
10
+ })(WorkerEventType || (exports.WorkerEventType = WorkerEventType = {}));
@@ -1,13 +1,16 @@
1
- export var MasterMessageType;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkerMessageType = exports.MasterMessageType = void 0;
4
+ var MasterMessageType;
2
5
  (function (MasterMessageType) {
3
6
  MasterMessageType["cancel"] = "cancel";
4
7
  MasterMessageType["run"] = "run";
5
- })(MasterMessageType || (MasterMessageType = {}));
6
- export var WorkerMessageType;
8
+ })(MasterMessageType || (exports.MasterMessageType = MasterMessageType = {}));
9
+ var WorkerMessageType;
7
10
  (function (WorkerMessageType) {
8
11
  WorkerMessageType["error"] = "error";
9
12
  WorkerMessageType["init"] = "init";
10
13
  WorkerMessageType["result"] = "result";
11
14
  WorkerMessageType["running"] = "running";
12
15
  WorkerMessageType["uncaughtError"] = "uncaughtError";
13
- })(WorkerMessageType || (WorkerMessageType = {}));
16
+ })(WorkerMessageType || (exports.WorkerMessageType = WorkerMessageType = {}));
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,10 +1,26 @@
1
- import { expose } from './index';
2
- export * from './index';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const index_1 = require("./index");
18
+ __exportStar(require("./index"), exports);
3
19
  if (typeof global !== 'undefined') {
4
20
  ;
5
- global.expose = expose;
21
+ global.expose = index_1.expose;
6
22
  }
7
23
  if (typeof self !== 'undefined') {
8
24
  ;
9
- self.expose = expose;
25
+ self.expose = index_1.expose;
10
26
  }
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
1
3
  const isWorkerRuntime = function isWorkerRuntime() {
2
4
  const isWindowContext = self !== undefined && typeof Window !== 'undefined' && self instanceof Window;
3
5
  return self !== undefined && self['postMessage'] && !isWindowContext ? true : false;
@@ -15,7 +17,7 @@ const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage)
15
17
  self.addEventListener('message', messageHandler);
16
18
  return unsubscribe;
17
19
  };
18
- export default {
20
+ exports.default = {
19
21
  isWorkerRuntime,
20
22
  postMessageToMaster,
21
23
  subscribeToMasterMessages,
@@ -1,14 +1,19 @@
1
- import WebWorkerImplementation from './implementation.browser';
2
- import TinyWorkerImplementation from './implementation.tiny-worker';
3
- import WorkerThreadsImplementation from './implementation.worker_threads';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const implementation_browser_1 = __importDefault(require("./implementation.browser"));
7
+ const implementation_tiny_worker_1 = __importDefault(require("./implementation.tiny-worker"));
8
+ const implementation_worker_threads_1 = __importDefault(require("./implementation.worker_threads"));
4
9
  const runningInNode = typeof process !== 'undefined' && process.arch !== 'browser' && 'pid' in process;
5
10
  function selectNodeImplementation() {
6
11
  try {
7
- WorkerThreadsImplementation.testImplementation();
8
- return WorkerThreadsImplementation;
12
+ implementation_worker_threads_1.default.testImplementation();
13
+ return implementation_worker_threads_1.default;
9
14
  }
10
15
  catch {
11
- return TinyWorkerImplementation;
16
+ return implementation_tiny_worker_1.default;
12
17
  }
13
18
  }
14
- export default runningInNode ? selectNodeImplementation() : WebWorkerImplementation;
19
+ exports.default = runningInNode ? selectNodeImplementation() : implementation_browser_1.default;
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
1
3
  try {
2
4
  if (self === undefined) {
3
5
  ;
@@ -28,7 +30,7 @@ const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage)
28
30
  const unsubscribe = () => messageHandlers.delete(onMessage);
29
31
  return unsubscribe;
30
32
  };
31
- export default {
33
+ exports.default = {
32
34
  isWorkerRuntime,
33
35
  postMessageToMaster,
34
36
  subscribeToMasterMessages,
@@ -1,4 +1,9 @@
1
- import WorkerThreads from '../worker_threads';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const worker_threads_1 = __importDefault(require("../worker_threads"));
2
7
  function assertMessagePort(port) {
3
8
  if (!port) {
4
9
  throw new Error('Invariant violation: MessagePort to parent is not available.');
@@ -6,13 +11,13 @@ function assertMessagePort(port) {
6
11
  return port;
7
12
  }
8
13
  const isWorkerRuntime = function isWorkerRuntime() {
9
- return !WorkerThreads().isMainThread;
14
+ return !(0, worker_threads_1.default)().isMainThread;
10
15
  };
11
16
  const postMessageToMaster = function postMessageToMaster(data, transferList) {
12
- assertMessagePort(WorkerThreads().parentPort).postMessage(data, transferList);
17
+ assertMessagePort((0, worker_threads_1.default)().parentPort).postMessage(data, transferList);
13
18
  };
14
19
  const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage) {
15
- const parentPort = WorkerThreads().parentPort;
20
+ const parentPort = (0, worker_threads_1.default)().parentPort;
16
21
  if (!parentPort) {
17
22
  throw new Error('Invariant violation: MessagePort to parent is not available.');
18
23
  }
@@ -26,9 +31,9 @@ const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage)
26
31
  return unsubscribe;
27
32
  };
28
33
  function testImplementation() {
29
- WorkerThreads();
34
+ (0, worker_threads_1.default)();
30
35
  }
31
- export default {
36
+ exports.default = {
32
37
  isWorkerRuntime,
33
38
  postMessageToMaster,
34
39
  subscribeToMasterMessages,
@@ -1,30 +1,39 @@
1
- import isSomeObservable from 'is-observable-2-1-0';
2
- import { deserialize, serialize } from '../common';
3
- import { isTransferDescriptor } from '../transferable';
4
- import { MasterMessageType, WorkerMessageType, } from '../types/messages';
5
- import Implementation from './implementation';
6
- export { registerSerializer } from '../common';
7
- export { Transfer } from '../transferable';
8
- export const isWorkerRuntime = Implementation.isWorkerRuntime;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isWorkerRuntime = exports.Transfer = exports.registerSerializer = void 0;
7
+ exports.expose = expose;
8
+ const is_observable_2_1_0_1 = __importDefault(require("is-observable-2-1-0"));
9
+ const common_1 = require("../common");
10
+ const transferable_1 = require("../transferable");
11
+ const messages_1 = require("../types/messages");
12
+ const implementation_1 = __importDefault(require("./implementation"));
13
+ var common_2 = require("../common");
14
+ Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return common_2.registerSerializer; } });
15
+ var transferable_2 = require("../transferable");
16
+ Object.defineProperty(exports, "Transfer", { enumerable: true, get: function () { return transferable_2.Transfer; } });
17
+ exports.isWorkerRuntime = implementation_1.default.isWorkerRuntime;
9
18
  let exposeCalled = false;
10
19
  const activeSubscriptions = new Map();
11
- const isMasterJobCancelMessage = (thing) => thing && thing.type === MasterMessageType.cancel;
12
- const isMasterJobRunMessage = (thing) => thing && thing.type === MasterMessageType.run;
13
- const isObservable = (thing) => isSomeObservable(thing) || isZenObservable(thing);
20
+ const isMasterJobCancelMessage = (thing) => thing && thing.type === messages_1.MasterMessageType.cancel;
21
+ const isMasterJobRunMessage = (thing) => thing && thing.type === messages_1.MasterMessageType.run;
22
+ const isObservable = (thing) => (0, is_observable_2_1_0_1.default)(thing) || isZenObservable(thing);
14
23
  function isZenObservable(thing) {
15
24
  return thing && typeof thing === 'object' && typeof thing.subscribe === 'function';
16
25
  }
17
26
  function deconstructTransfer(thing) {
18
- return isTransferDescriptor(thing) ? { payload: thing.send, transferables: thing.transferables } : { payload: thing, transferables: undefined };
27
+ return (0, transferable_1.isTransferDescriptor)(thing) ? { payload: thing.send, transferables: thing.transferables } : { payload: thing, transferables: undefined };
19
28
  }
20
29
  function postFunctionInitMessage() {
21
30
  const initMessage = {
22
31
  exposed: {
23
32
  type: 'function',
24
33
  },
25
- type: WorkerMessageType.init,
34
+ type: messages_1.WorkerMessageType.init,
26
35
  };
27
- Implementation.postMessageToMaster(initMessage);
36
+ implementation_1.default.postMessageToMaster(initMessage);
28
37
  }
29
38
  function postModuleInitMessage(methodNames) {
30
39
  const initMessage = {
@@ -32,44 +41,44 @@ function postModuleInitMessage(methodNames) {
32
41
  methods: methodNames,
33
42
  type: 'module',
34
43
  },
35
- type: WorkerMessageType.init,
44
+ type: messages_1.WorkerMessageType.init,
36
45
  };
37
- Implementation.postMessageToMaster(initMessage);
46
+ implementation_1.default.postMessageToMaster(initMessage);
38
47
  }
39
48
  function postJobErrorMessage(uid, rawError) {
40
49
  const { payload: error, transferables } = deconstructTransfer(rawError);
41
50
  const errorMessage = {
42
- error: serialize(error),
43
- type: WorkerMessageType.error,
51
+ error: (0, common_1.serialize)(error),
52
+ type: messages_1.WorkerMessageType.error,
44
53
  uid,
45
54
  };
46
- Implementation.postMessageToMaster(errorMessage, transferables);
55
+ implementation_1.default.postMessageToMaster(errorMessage, transferables);
47
56
  }
48
57
  function postJobResultMessage(uid, completed, resultValue) {
49
58
  const { payload, transferables } = deconstructTransfer(resultValue);
50
59
  const resultMessage = {
51
60
  complete: completed ? true : undefined,
52
61
  payload,
53
- type: WorkerMessageType.result,
62
+ type: messages_1.WorkerMessageType.result,
54
63
  uid,
55
64
  };
56
- Implementation.postMessageToMaster(resultMessage, transferables);
65
+ implementation_1.default.postMessageToMaster(resultMessage, transferables);
57
66
  }
58
67
  function postJobStartMessage(uid, resultType) {
59
68
  const startMessage = {
60
69
  resultType,
61
- type: WorkerMessageType.running,
70
+ type: messages_1.WorkerMessageType.running,
62
71
  uid,
63
72
  };
64
- Implementation.postMessageToMaster(startMessage);
73
+ implementation_1.default.postMessageToMaster(startMessage);
65
74
  }
66
75
  function postUncaughtErrorMessage(error) {
67
76
  try {
68
77
  const errorMessage = {
69
- error: serialize(error),
70
- type: WorkerMessageType.uncaughtError,
78
+ error: (0, common_1.serialize)(error),
79
+ type: messages_1.WorkerMessageType.uncaughtError,
71
80
  };
72
- Implementation.postMessageToMaster(errorMessage);
81
+ implementation_1.default.postMessageToMaster(errorMessage);
73
82
  }
74
83
  catch (subError) {
75
84
  console.error('Not reporting uncaught error back to master thread as it ' + 'occured while reporting an uncaught error already.' + '\nLatest error:', subError, '\nOriginal error:', error);
@@ -86,8 +95,8 @@ async function runFunction(jobUID, fn, args) {
86
95
  const resultType = isObservable(syncResult) ? 'observable' : 'promise';
87
96
  postJobStartMessage(jobUID, resultType);
88
97
  if (isObservable(syncResult)) {
89
- const subscription = syncResult.subscribe((value) => postJobResultMessage(jobUID, false, serialize(value)), (error) => {
90
- postJobErrorMessage(jobUID, serialize(error));
98
+ const subscription = syncResult.subscribe((value) => postJobResultMessage(jobUID, false, (0, common_1.serialize)(value)), (error) => {
99
+ postJobErrorMessage(jobUID, (0, common_1.serialize)(error));
91
100
  activeSubscriptions.delete(jobUID);
92
101
  }, () => {
93
102
  postJobResultMessage(jobUID, true);
@@ -98,15 +107,15 @@ async function runFunction(jobUID, fn, args) {
98
107
  else {
99
108
  try {
100
109
  const result = await syncResult;
101
- postJobResultMessage(jobUID, true, serialize(result));
110
+ postJobResultMessage(jobUID, true, (0, common_1.serialize)(result));
102
111
  }
103
112
  catch (error) {
104
- postJobErrorMessage(jobUID, serialize(error));
113
+ postJobErrorMessage(jobUID, (0, common_1.serialize)(error));
105
114
  }
106
115
  }
107
116
  }
108
- export function expose(exposed) {
109
- if (!Implementation.isWorkerRuntime()) {
117
+ function expose(exposed) {
118
+ if (!implementation_1.default.isWorkerRuntime()) {
110
119
  throw new Error('expose() called in the master thread.');
111
120
  }
112
121
  if (exposeCalled) {
@@ -114,17 +123,17 @@ export function expose(exposed) {
114
123
  }
115
124
  exposeCalled = true;
116
125
  if (typeof exposed === 'function') {
117
- Implementation.subscribeToMasterMessages((messageData) => {
126
+ implementation_1.default.subscribeToMasterMessages((messageData) => {
118
127
  if (isMasterJobRunMessage(messageData) && !messageData.method) {
119
- runFunction(messageData.uid, exposed, messageData.args.map(deserialize));
128
+ runFunction(messageData.uid, exposed, messageData.args.map(common_1.deserialize));
120
129
  }
121
130
  });
122
131
  postFunctionInitMessage();
123
132
  }
124
133
  else if (typeof exposed === 'object' && exposed) {
125
- Implementation.subscribeToMasterMessages((messageData) => {
134
+ implementation_1.default.subscribeToMasterMessages((messageData) => {
126
135
  if (isMasterJobRunMessage(messageData) && messageData.method) {
127
- runFunction(messageData.uid, exposed[messageData.method], messageData.args.map(deserialize));
136
+ runFunction(messageData.uid, exposed[messageData.method], messageData.args.map(common_1.deserialize));
128
137
  }
129
138
  });
130
139
  const methodNames = Object.keys(exposed).filter((key) => typeof exposed[key] === 'function');
@@ -133,7 +142,7 @@ export function expose(exposed) {
133
142
  else {
134
143
  throw new Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${exposed}`);
135
144
  }
136
- Implementation.subscribeToMasterMessages((messageData) => {
145
+ implementation_1.default.subscribeToMasterMessages((messageData) => {
137
146
  if (isMasterJobCancelMessage(messageData)) {
138
147
  const jobUID = messageData.uid;
139
148
  const subscription = activeSubscriptions.get(jobUID);
@@ -144,7 +153,7 @@ export function expose(exposed) {
144
153
  }
145
154
  });
146
155
  }
147
- if (typeof self !== 'undefined' && typeof self.addEventListener === 'function' && Implementation.isWorkerRuntime()) {
156
+ if (typeof self !== 'undefined' && typeof self.addEventListener === 'function' && implementation_1.default.isWorkerRuntime()) {
148
157
  self.addEventListener('error', (event) => {
149
158
  setTimeout(() => postUncaughtErrorMessage(event.error || event), 250);
150
159
  });
@@ -155,7 +164,7 @@ if (typeof self !== 'undefined' && typeof self.addEventListener === 'function' &
155
164
  }
156
165
  });
157
166
  }
158
- if (typeof process !== 'undefined' && typeof process.on === 'function' && Implementation.isWorkerRuntime()) {
167
+ if (typeof process !== 'undefined' && typeof process.on === 'function' && implementation_1.default.isWorkerRuntime()) {
159
168
  process.on('uncaughtException', (error) => {
160
169
  setTimeout(() => postUncaughtErrorMessage(error), 250);
161
170
  });
@@ -1,8 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = getImplementation;
1
4
  let implementation;
2
5
  function selectImplementation() {
3
6
  return typeof __non_webpack_require__ === 'function' ? __non_webpack_require__('worker_threads') : eval('require')('worker_threads');
4
7
  }
5
- export default function getImplementation() {
8
+ function getImplementation() {
6
9
  if (!implementation) {
7
10
  implementation = selectImplementation();
8
11
  }