@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,11 +1,16 @@
1
- import { DefaultSerializer, extendSerializer } from './serializers';
2
- let registeredSerializer = DefaultSerializer;
3
- export function registerSerializer(serializer) {
4
- registeredSerializer = extendSerializer(registeredSerializer, serializer);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerSerializer = registerSerializer;
4
+ exports.deserialize = deserialize;
5
+ exports.serialize = serialize;
6
+ const serializers_1 = require("./serializers");
7
+ let registeredSerializer = serializers_1.DefaultSerializer;
8
+ function registerSerializer(serializer) {
9
+ registeredSerializer = (0, serializers_1.extendSerializer)(registeredSerializer, serializer);
5
10
  }
6
- export function deserialize(message) {
11
+ function deserialize(message) {
7
12
  return registeredSerializer.deserialize(message);
8
13
  }
9
- export function serialize(input) {
14
+ function serialize(input) {
10
15
  return registeredSerializer.serialize(input);
11
16
  }
package/dist/esm/index.js CHANGED
@@ -1,5 +1,26 @@
1
- export { registerSerializer } from './common';
2
- export * from './master/index';
3
- export { DefaultSerializer } from './serializers';
4
- export { Transfer } from './transferable';
5
- export { expose } from './worker/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
+ exports.expose = exports.Transfer = exports.DefaultSerializer = exports.registerSerializer = void 0;
18
+ var common_1 = require("./common");
19
+ Object.defineProperty(exports, "registerSerializer", { enumerable: true, get: function () { return common_1.registerSerializer; } });
20
+ __exportStar(require("./master/index"), exports);
21
+ var serializers_1 = require("./serializers");
22
+ Object.defineProperty(exports, "DefaultSerializer", { enumerable: true, get: function () { return serializers_1.DefaultSerializer; } });
23
+ var transferable_1 = require("./transferable");
24
+ Object.defineProperty(exports, "Transfer", { enumerable: true, get: function () { return transferable_1.Transfer; } });
25
+ var index_1 = require("./worker/index");
26
+ Object.defineProperty(exports, "expose", { enumerable: true, get: function () { return index_1.expose; } });
@@ -1,3 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBaseURL = getBaseURL;
4
+ exports.getBundleURL = getBundleURLCached;
1
5
  let bundleURL;
2
6
  function getBundleURLCached() {
3
7
  if (!bundleURL) {
@@ -20,4 +24,3 @@ function getBundleURL() {
20
24
  function getBaseURL(url) {
21
25
  return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)?\/[^/]+(?:\?.*)?$/, '$1') + '/';
22
26
  }
23
- export { getBaseURL, getBundleURLCached as getBundleURL };
@@ -1,5 +1,10 @@
1
- import { getBundleURL } from './get-bundle-url.browser';
2
- export const defaultPoolSize = typeof navigator !== 'undefined' && navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultPoolSize = void 0;
4
+ exports.getWorkerImplementation = getWorkerImplementation;
5
+ exports.isWorkerRuntime = isWorkerRuntime;
6
+ const get_bundle_url_browser_1 = require("./get-bundle-url.browser");
7
+ exports.defaultPoolSize = typeof navigator !== 'undefined' && navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4;
3
8
  const isAbsoluteURL = (value) => /^[A-Za-z][\d+.A-Za-z\-]*:/.test(value);
4
9
  function createSourceBlobURL(code) {
5
10
  const blob = new Blob([code], { type: 'application/javascript' });
@@ -18,8 +23,8 @@ function selectWorkerImplementation() {
18
23
  if (typeof url === 'string' && options && options._baseURL) {
19
24
  url = new URL(url, options._baseURL);
20
25
  }
21
- else if (typeof url === 'string' && !isAbsoluteURL(url) && /^file:\/\//i.test(getBundleURL())) {
22
- url = new URL(url, getBundleURL().replace(/\/[^/]+$/, '/'));
26
+ else if (typeof url === 'string' && !isAbsoluteURL(url) && /^file:\/\//i.test((0, get_bundle_url_browser_1.getBundleURL)())) {
27
+ url = new URL(url, (0, get_bundle_url_browser_1.getBundleURL)().replace(/\/[^/]+$/, '/'));
23
28
  if (options?.CORSWorkaround ?? true) {
24
29
  url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`);
25
30
  }
@@ -48,13 +53,13 @@ function selectWorkerImplementation() {
48
53
  };
49
54
  }
50
55
  let implementation;
51
- export function getWorkerImplementation() {
56
+ function getWorkerImplementation() {
52
57
  if (!implementation) {
53
58
  implementation = selectWorkerImplementation();
54
59
  }
55
60
  return implementation;
56
61
  }
57
- export function isWorkerRuntime() {
62
+ function isWorkerRuntime() {
58
63
  const isWindowContext = typeof self !== 'undefined' && typeof Window !== 'undefined' && self instanceof Window;
59
64
  return typeof self !== 'undefined' && self['postMessage'] && !isWindowContext ? true : false;
60
65
  }
@@ -1,7 +1,33 @@
1
- import * as BrowserImplementation from './implementation.browser';
2
- import * as NodeImplementation from './implementation.node';
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.isWorkerRuntime = exports.getWorkerImplementation = exports.defaultPoolSize = void 0;
27
+ const BrowserImplementation = __importStar(require("./implementation.browser"));
28
+ const NodeImplementation = __importStar(require("./implementation.node"));
3
29
  const runningInNode = typeof process !== 'undefined' && process.arch !== 'browser' && 'pid' in process;
4
30
  const implementation = runningInNode ? NodeImplementation : BrowserImplementation;
5
- export const defaultPoolSize = implementation.defaultPoolSize;
6
- export const getWorkerImplementation = implementation.getWorkerImplementation;
7
- export const isWorkerRuntime = implementation.isWorkerRuntime;
31
+ exports.defaultPoolSize = implementation.defaultPoolSize;
32
+ exports.getWorkerImplementation = implementation.getWorkerImplementation;
33
+ exports.isWorkerRuntime = implementation.isWorkerRuntime;
@@ -1,10 +1,18 @@
1
- import { EventEmitter } from 'node:events';
2
- import { cpus } from 'node:os';
3
- import path from 'node:path';
4
- import { fileURLToPath } from 'node:url';
5
- import getCallsites from 'callsites-3-1-0';
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.defaultPoolSize = void 0;
7
+ exports.getWorkerImplementation = getWorkerImplementation;
8
+ exports.isWorkerRuntime = isWorkerRuntime;
9
+ const node_events_1 = require("node:events");
10
+ const node_os_1 = require("node:os");
11
+ const node_path_1 = __importDefault(require("node:path"));
12
+ const node_url_1 = require("node:url");
13
+ const callsites_3_1_0_1 = __importDefault(require("callsites-3-1-0"));
6
14
  let tsNodeAvailable;
7
- export const defaultPoolSize = cpus().length;
15
+ exports.defaultPoolSize = (0, node_os_1.cpus)().length;
8
16
  function detectTsNode() {
9
17
  if (typeof __non_webpack_require__ === 'function') {
10
18
  return false;
@@ -34,21 +42,21 @@ function createTsNodeModule(scriptPath) {
34
42
  return content;
35
43
  }
36
44
  function rebaseScriptPath(scriptPath, ignoreRegex) {
37
- const parentCallSite = getCallsites().find((callsite) => {
45
+ const parentCallSite = (0, callsites_3_1_0_1.default)().find((callsite) => {
38
46
  const filename = callsite.getFileName();
39
47
  return Boolean(filename && !filename.match(ignoreRegex) && !/[/\\]master[/\\]implementation/.test(filename) && !/^internal\/process/.test(filename));
40
48
  });
41
49
  const rawCallerPath = parentCallSite ? parentCallSite.getFileName() : null;
42
50
  let callerPath = rawCallerPath ? rawCallerPath : null;
43
51
  if (callerPath && callerPath.startsWith('file:')) {
44
- callerPath = fileURLToPath(callerPath);
52
+ callerPath = (0, node_url_1.fileURLToPath)(callerPath);
45
53
  }
46
- const rebasedScriptPath = callerPath ? path.join(path.dirname(callerPath), scriptPath) : scriptPath;
54
+ const rebasedScriptPath = callerPath ? node_path_1.default.join(node_path_1.default.dirname(callerPath), scriptPath) : scriptPath;
47
55
  return rebasedScriptPath;
48
56
  }
49
57
  function resolveScriptPath(scriptPath, baseURL) {
50
58
  const makeRelative = (filePath) => {
51
- return path.isAbsolute(filePath) ? filePath : path.join(baseURL || eval('__dirname'), filePath);
59
+ return node_path_1.default.isAbsolute(filePath) ? filePath : node_path_1.default.join(baseURL || eval('__dirname'), filePath);
52
60
  };
53
61
  const workerFilePath = typeof __non_webpack_require__ === 'function' ?
54
62
  __non_webpack_require__.resolve(makeRelative(scriptPath))
@@ -132,7 +140,7 @@ function initTinyWorker() {
132
140
  super(resolvedScriptPath, [], { esm: true });
133
141
  }
134
142
  allWorkers.push(this);
135
- this.emitter = new EventEmitter();
143
+ this.emitter = new node_events_1.EventEmitter();
136
144
  this.onerror = (error) => this.emitter.emit('error', error);
137
145
  this.onmessage = (message) => this.emitter.emit('message', message);
138
146
  }
@@ -179,13 +187,13 @@ function selectWorkerImplementation() {
179
187
  return initTinyWorker();
180
188
  }
181
189
  }
182
- export function getWorkerImplementation() {
190
+ function getWorkerImplementation() {
183
191
  if (!implementation) {
184
192
  implementation = selectWorkerImplementation();
185
193
  }
186
194
  return implementation;
187
195
  }
188
- export function isWorkerRuntime() {
196
+ function isWorkerRuntime() {
189
197
  if (isTinyWorker) {
190
198
  return self !== undefined && self['postMessage'] ? true : false;
191
199
  }
@@ -1,7 +1,14 @@
1
- import { getWorkerImplementation } from './implementation';
2
- export { Pool } from './pool';
3
- export { spawn } from './spawn';
4
- export { Thread } from './thread';
5
- export const BlobWorker = getWorkerImplementation().blob;
6
- export const Worker = getWorkerImplementation().default;
7
- export { isWorkerRuntime } from './implementation';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isWorkerRuntime = exports.Worker = exports.BlobWorker = exports.Thread = exports.spawn = exports.Pool = void 0;
4
+ const implementation_1 = require("./implementation");
5
+ var pool_1 = require("./pool");
6
+ Object.defineProperty(exports, "Pool", { enumerable: true, get: function () { return pool_1.Pool; } });
7
+ var spawn_1 = require("./spawn");
8
+ Object.defineProperty(exports, "spawn", { enumerable: true, get: function () { return spawn_1.spawn; } });
9
+ var thread_1 = require("./thread");
10
+ Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return thread_1.Thread; } });
11
+ exports.BlobWorker = (0, implementation_1.getWorkerImplementation)().blob;
12
+ exports.Worker = (0, implementation_1.getWorkerImplementation)().default;
13
+ var implementation_2 = require("./implementation");
14
+ Object.defineProperty(exports, "isWorkerRuntime", { enumerable: true, get: function () { return implementation_2.isWorkerRuntime; } });
@@ -1,17 +1,24 @@
1
- import DebugLogger from 'debug';
2
- import { multicast, Observable } from 'observable-fns';
3
- import { deserialize, serialize } from '../common';
4
- import { ObservablePromise } from '../observable-promise';
5
- import { isTransferDescriptor } from '../transferable';
6
- import { MasterMessageType, WorkerMessageType, } from '../types/messages';
7
- const debugMessages = DebugLogger('threads:master:messages');
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.createProxyFunction = createProxyFunction;
7
+ exports.createProxyModule = createProxyModule;
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const observable_fns_1 = require("observable-fns");
10
+ const common_1 = require("../common");
11
+ const observable_promise_1 = require("../observable-promise");
12
+ const transferable_1 = require("../transferable");
13
+ const messages_1 = require("../types/messages");
14
+ const debugMessages = (0, debug_1.default)('threads:master:messages');
8
15
  let nextJobUID = 1;
9
16
  const dedupe = (array) => [...new Set(array)];
10
- const isJobErrorMessage = (data) => data && data.type === WorkerMessageType.error;
11
- const isJobResultMessage = (data) => data && data.type === WorkerMessageType.result;
12
- const isJobStartMessage = (data) => data && data.type === WorkerMessageType.running;
17
+ const isJobErrorMessage = (data) => data && data.type === messages_1.WorkerMessageType.error;
18
+ const isJobResultMessage = (data) => data && data.type === messages_1.WorkerMessageType.result;
19
+ const isJobStartMessage = (data) => data && data.type === messages_1.WorkerMessageType.running;
13
20
  function createObservableForJob(worker, jobUID) {
14
- return new Observable((observer) => {
21
+ return new observable_fns_1.Observable((observer) => {
15
22
  let asyncType;
16
23
  const messageHandler = ((event) => {
17
24
  debugMessages('Message from worker:', event.data);
@@ -23,14 +30,14 @@ function createObservableForJob(worker, jobUID) {
23
30
  else if (isJobResultMessage(event.data)) {
24
31
  if (asyncType === 'promise') {
25
32
  if (event.data.payload !== undefined) {
26
- observer.next(deserialize(event.data.payload));
33
+ observer.next((0, common_1.deserialize)(event.data.payload));
27
34
  }
28
35
  observer.complete();
29
36
  worker.removeEventListener('message', messageHandler);
30
37
  }
31
38
  else {
32
39
  if (event.data.payload) {
33
- observer.next(deserialize(event.data.payload));
40
+ observer.next((0, common_1.deserialize)(event.data.payload));
34
41
  }
35
42
  if (event.data.complete) {
36
43
  observer.complete();
@@ -39,7 +46,7 @@ function createObservableForJob(worker, jobUID) {
39
46
  }
40
47
  }
41
48
  else if (isJobErrorMessage(event.data)) {
42
- const error = deserialize(event.data.error);
49
+ const error = (0, common_1.deserialize)(event.data.error);
43
50
  if (asyncType === 'promise' || !asyncType) {
44
51
  observer.error(error);
45
52
  }
@@ -53,7 +60,7 @@ function createObservableForJob(worker, jobUID) {
53
60
  return () => {
54
61
  if (asyncType === 'observable' || !asyncType) {
55
62
  const cancelMessage = {
56
- type: MasterMessageType.cancel,
63
+ type: messages_1.MasterMessageType.cancel,
57
64
  uid: jobUID,
58
65
  };
59
66
  worker.postMessage(cancelMessage);
@@ -72,12 +79,12 @@ function prepareArguments(rawArgs) {
72
79
  const args = [];
73
80
  const transferables = [];
74
81
  for (const arg of rawArgs) {
75
- if (isTransferDescriptor(arg)) {
76
- args.push(serialize(arg.send));
82
+ if ((0, transferable_1.isTransferDescriptor)(arg)) {
83
+ args.push((0, common_1.serialize)(arg.send));
77
84
  transferables.push(...arg.transferables);
78
85
  }
79
86
  else {
80
- args.push(serialize(arg));
87
+ args.push((0, common_1.serialize)(arg));
81
88
  }
82
89
  }
83
90
  return {
@@ -85,14 +92,14 @@ function prepareArguments(rawArgs) {
85
92
  transferables: transferables.length === 0 ? transferables : dedupe(transferables),
86
93
  };
87
94
  }
88
- export function createProxyFunction(worker, method) {
95
+ function createProxyFunction(worker, method) {
89
96
  return ((...rawArgs) => {
90
97
  const uid = nextJobUID++;
91
98
  const { args, transferables } = prepareArguments(rawArgs);
92
99
  const runMessage = {
93
100
  args,
94
101
  method,
95
- type: MasterMessageType.run,
102
+ type: messages_1.MasterMessageType.run,
96
103
  uid,
97
104
  };
98
105
  debugMessages('Sending command to run function to worker:', runMessage);
@@ -100,12 +107,12 @@ export function createProxyFunction(worker, method) {
100
107
  worker.postMessage(runMessage, transferables);
101
108
  }
102
109
  catch (error) {
103
- return ObservablePromise.from(Promise.reject(error));
110
+ return observable_promise_1.ObservablePromise.from(Promise.reject(error));
104
111
  }
105
- return ObservablePromise.from(multicast(createObservableForJob(worker, uid)));
112
+ return observable_promise_1.ObservablePromise.from((0, observable_fns_1.multicast)(createObservableForJob(worker, uid)));
106
113
  });
107
114
  }
108
- export function createProxyModule(worker, methodNames) {
115
+ function createProxyModule(worker, methodNames) {
109
116
  const proxy = {};
110
117
  for (const methodName of methodNames) {
111
118
  proxy[methodName] = createProxyFunction(worker, methodName);
@@ -1,4 +1,7 @@
1
- export var PoolEventType;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolEventType = void 0;
4
+ var PoolEventType;
2
5
  (function (PoolEventType) {
3
6
  PoolEventType["initialized"] = "initialized";
4
7
  PoolEventType["taskCanceled"] = "taskCanceled";
@@ -8,4 +11,4 @@ export var PoolEventType;
8
11
  PoolEventType["taskQueueDrained"] = "taskQueueDrained";
9
12
  PoolEventType["taskStart"] = "taskStart";
10
13
  PoolEventType["terminated"] = "terminated";
11
- })(PoolEventType || (PoolEventType = {}));
14
+ })(PoolEventType || (exports.PoolEventType = PoolEventType = {}));
@@ -1,9 +1,15 @@
1
- import DebugLogger from 'debug';
2
- import { multicast, Observable, Subject } from 'observable-fns';
3
- import { allSettled } from '../ponyfills';
4
- import { defaultPoolSize } from './implementation';
5
- import { PoolEventType } from './pool-types';
6
- import { Thread } from './thread';
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.Thread = exports.PoolEventType = exports.Pool = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const observable_fns_1 = require("observable-fns");
9
+ const ponyfills_1 = require("../ponyfills");
10
+ const implementation_1 = require("./implementation");
11
+ const pool_types_1 = require("./pool-types");
12
+ const thread_1 = require("./thread");
7
13
  let nextPoolID = 1;
8
14
  function createArray(size) {
9
15
  const array = [];
@@ -28,26 +34,26 @@ function spawnWorkers(spawnWorker, count) {
28
34
  }));
29
35
  }
30
36
  class WorkerPool {
31
- static EventType = PoolEventType;
37
+ static EventType = pool_types_1.PoolEventType;
32
38
  debug;
33
39
  eventObservable;
34
40
  options;
35
41
  workers;
36
- eventSubject = new Subject();
42
+ eventSubject = new observable_fns_1.Subject();
37
43
  initErrors = [];
38
44
  isClosing = false;
39
45
  nextTaskID = 1;
40
46
  taskQueue = [];
41
47
  constructor(spawnWorker, optionsOrSize) {
42
48
  const options = typeof optionsOrSize === 'number' ? { size: optionsOrSize } : optionsOrSize || {};
43
- const { size = defaultPoolSize } = options;
44
- this.debug = DebugLogger(`threads:pool:${slugify(options.name || String(nextPoolID++))}`);
49
+ const { size = implementation_1.defaultPoolSize } = options;
50
+ this.debug = (0, debug_1.default)(`threads:pool:${slugify(options.name || String(nextPoolID++))}`);
45
51
  this.options = options;
46
52
  this.workers = spawnWorkers(spawnWorker, size);
47
- this.eventObservable = multicast(Observable.from(this.eventSubject));
53
+ this.eventObservable = (0, observable_fns_1.multicast)(observable_fns_1.Observable.from(this.eventSubject));
48
54
  Promise.all(this.workers.map((worker) => worker.init)).then(() => this.eventSubject.next({
49
55
  size: this.workers.length,
50
- type: PoolEventType.initialized,
56
+ type: pool_types_1.PoolEventType.initialized,
51
57
  }), (error) => {
52
58
  this.debug('Error while initializing pool worker:', error);
53
59
  this.eventSubject.error(error);
@@ -63,7 +69,7 @@ class WorkerPool {
63
69
  this.debug(`Running task #${task.id} on worker #${workerID}...`);
64
70
  this.eventSubject.next({
65
71
  taskID: task.id,
66
- type: PoolEventType.taskStart,
72
+ type: pool_types_1.PoolEventType.taskStart,
67
73
  workerID,
68
74
  });
69
75
  try {
@@ -72,7 +78,7 @@ class WorkerPool {
72
78
  this.eventSubject.next({
73
79
  returnValue,
74
80
  taskID: task.id,
75
- type: PoolEventType.taskCompleted,
81
+ type: pool_types_1.PoolEventType.taskCompleted,
76
82
  workerID,
77
83
  });
78
84
  }
@@ -81,7 +87,7 @@ class WorkerPool {
81
87
  this.eventSubject.next({
82
88
  error,
83
89
  taskID: task.id,
84
- type: PoolEventType.taskFailed,
90
+ type: pool_types_1.PoolEventType.taskFailed,
85
91
  workerID,
86
92
  });
87
93
  }
@@ -112,7 +118,7 @@ class WorkerPool {
112
118
  const nextTask = this.taskQueue.shift();
113
119
  if (!nextTask) {
114
120
  this.debug('Task queue is empty');
115
- this.eventSubject.next({ type: PoolEventType.taskQueueDrained });
121
+ this.eventSubject.next({ type: pool_types_1.PoolEventType.taskQueueDrained });
116
122
  return;
117
123
  }
118
124
  this.run(availableWorker, nextTask);
@@ -120,15 +126,15 @@ class WorkerPool {
120
126
  taskCompletion(taskID) {
121
127
  return new Promise((resolve, reject) => {
122
128
  const eventSubscription = this.events().subscribe((event) => {
123
- if (event.type === PoolEventType.taskCompleted && event.taskID === taskID) {
129
+ if (event.type === pool_types_1.PoolEventType.taskCompleted && event.taskID === taskID) {
124
130
  eventSubscription.unsubscribe();
125
131
  resolve(event.returnValue);
126
132
  }
127
- else if (event.type === PoolEventType.taskFailed && event.taskID === taskID) {
133
+ else if (event.type === pool_types_1.PoolEventType.taskFailed && event.taskID === taskID) {
128
134
  eventSubscription.unsubscribe();
129
135
  reject(event.error);
130
136
  }
131
- else if (event.type === PoolEventType.terminated) {
137
+ else if (event.type === pool_types_1.PoolEventType.terminated) {
132
138
  eventSubscription.unsubscribe();
133
139
  reject(new Error('Pool has been terminated before task was run.'));
134
140
  }
@@ -139,7 +145,7 @@ class WorkerPool {
139
145
  const getCurrentlyRunningTasks = () => flatMap(this.workers, (worker) => worker.runningTasks);
140
146
  const taskFailures = [];
141
147
  const failureSubscription = this.eventObservable.subscribe((event) => {
142
- if (event.type === PoolEventType.taskFailed) {
148
+ if (event.type === pool_types_1.PoolEventType.taskFailed) {
143
149
  taskFailures.push(event.error);
144
150
  }
145
151
  });
@@ -147,21 +153,21 @@ class WorkerPool {
147
153
  throw this.initErrors[0];
148
154
  }
149
155
  if (allowResolvingImmediately && this.taskQueue.length === 0) {
150
- await allSettled(getCurrentlyRunningTasks());
156
+ await (0, ponyfills_1.allSettled)(getCurrentlyRunningTasks());
151
157
  return taskFailures;
152
158
  }
153
159
  await new Promise((resolve, reject) => {
154
160
  const subscription = this.eventObservable.subscribe({
155
161
  error: reject,
156
162
  next(event) {
157
- if (event.type === PoolEventType.taskQueueDrained) {
163
+ if (event.type === pool_types_1.PoolEventType.taskQueueDrained) {
158
164
  subscription.unsubscribe();
159
165
  resolve(void 0);
160
166
  }
161
167
  },
162
168
  });
163
169
  });
164
- await allSettled(getCurrentlyRunningTasks());
170
+ await (0, ponyfills_1.allSettled)(getCurrentlyRunningTasks());
165
171
  failureSubscription.unsubscribe();
166
172
  return taskFailures;
167
173
  }
@@ -171,11 +177,11 @@ class WorkerPool {
171
177
  const subscription = this.eventObservable.subscribe({
172
178
  error: reject,
173
179
  next(event) {
174
- if (event.type === PoolEventType.taskQueueDrained) {
180
+ if (event.type === pool_types_1.PoolEventType.taskQueueDrained) {
175
181
  subscription.unsubscribe();
176
182
  resolve(settlementPromise);
177
183
  }
178
- else if (event.type === PoolEventType.taskFailed) {
184
+ else if (event.type === pool_types_1.PoolEventType.taskFailed) {
179
185
  subscription.unsubscribe();
180
186
  reject(event.error);
181
187
  }
@@ -210,7 +216,7 @@ class WorkerPool {
210
216
  this.taskQueue = this.taskQueue.filter((someTask) => someTask !== task);
211
217
  this.eventSubject.next({
212
218
  taskID: task.id,
213
- type: PoolEventType.taskCanceled,
219
+ type: pool_types_1.PoolEventType.taskCanceled,
214
220
  });
215
221
  },
216
222
  id: taskID,
@@ -226,7 +232,7 @@ class WorkerPool {
226
232
  this.taskQueue.push(task);
227
233
  this.eventSubject.next({
228
234
  taskID: task.id,
229
- type: PoolEventType.taskQueued,
235
+ type: pool_types_1.PoolEventType.taskQueued,
230
236
  });
231
237
  this.scheduleWork();
232
238
  return task;
@@ -238,17 +244,19 @@ class WorkerPool {
238
244
  }
239
245
  this.eventSubject.next({
240
246
  remainingQueue: [...this.taskQueue],
241
- type: PoolEventType.terminated,
247
+ type: pool_types_1.PoolEventType.terminated,
242
248
  });
243
249
  this.eventSubject.complete();
244
- await Promise.all(this.workers.map(async (worker) => Thread.terminate(await worker.init)));
250
+ await Promise.all(this.workers.map(async (worker) => thread_1.Thread.terminate(await worker.init)));
245
251
  }
246
252
  }
247
253
  function PoolConstructor(spawnWorker, optionsOrSize) {
248
254
  return new WorkerPool(spawnWorker, optionsOrSize);
249
255
  }
250
256
  ;
251
- PoolConstructor.EventType = PoolEventType;
252
- export const Pool = PoolConstructor;
253
- export { PoolEventType } from './pool-types';
254
- export { Thread } from './thread';
257
+ PoolConstructor.EventType = pool_types_1.PoolEventType;
258
+ exports.Pool = PoolConstructor;
259
+ var pool_types_2 = require("./pool-types");
260
+ Object.defineProperty(exports, "PoolEventType", { enumerable: true, get: function () { return pool_types_2.PoolEventType; } });
261
+ var thread_2 = require("./thread");
262
+ Object.defineProperty(exports, "Thread", { enumerable: true, get: function () { return thread_2.Thread; } });
@@ -1,9 +1,11 @@
1
- import { Worker as WorkerImplementation } from './index';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
2
4
  if (typeof global !== 'undefined') {
3
5
  ;
4
- global.Worker = WorkerImplementation;
6
+ global.Worker = index_1.Worker;
5
7
  }
6
8
  else if (window !== undefined) {
7
9
  ;
8
- window.Worker = WorkerImplementation;
10
+ window.Worker = index_1.Worker;
9
11
  }