@xylabs/threads 4.7.6 → 4.8.0-rc.2
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/dist/{browser/master/index-browser.mjs → neutral/index.mjs} +131 -71
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/master/implementation.mjs +264 -0
- package/dist/neutral/master/implementation.mjs.map +1 -0
- package/dist/{browser/index-browser.mjs → neutral/master/index.mjs} +95 -103
- package/dist/neutral/master/index.mjs.map +1 -0
- package/dist/{node/master/pool-node.mjs → neutral/master/pool.mjs} +130 -20
- package/dist/neutral/master/pool.mjs.map +1 -0
- package/dist/neutral/master/register.mjs +131 -21
- package/dist/neutral/master/register.mjs.map +1 -1
- package/dist/types/{index-node.d.ts → index.d.ts} +3 -3
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/master/implementation.d.ts +7 -0
- package/dist/types/master/implementation.d.ts.map +1 -0
- package/dist/types/master/{index-node.d.ts → index.d.ts} +3 -3
- package/dist/types/master/index.d.ts.map +1 -0
- package/dist/types/master/{pool-node.d.ts → pool.d.ts} +1 -1
- package/dist/types/master/pool.d.ts.map +1 -0
- package/package.json +13 -28
- package/dist/browser/index-browser.mjs.map +0 -1
- package/dist/browser/master/index-browser.mjs.map +0 -1
- package/dist/browser/master/pool-browser.mjs +0 -323
- package/dist/browser/master/pool-browser.mjs.map +0 -1
- package/dist/node/index-node.mjs +0 -915
- package/dist/node/index-node.mjs.map +0 -1
- package/dist/node/master/index-node.mjs +0 -881
- package/dist/node/master/index-node.mjs.map +0 -1
- package/dist/node/master/pool-node.mjs.map +0 -1
- package/dist/types/index-browser.d.ts +0 -9
- package/dist/types/index-browser.d.ts.map +0 -1
- package/dist/types/index-node.d.ts.map +0 -1
- package/dist/types/master/index-browser.d.ts +0 -13
- package/dist/types/master/index-browser.d.ts.map +0 -1
- package/dist/types/master/index-node.d.ts.map +0 -1
- package/dist/types/master/pool-browser.d.ts +0 -93
- package/dist/types/master/pool-browser.d.ts.map +0 -1
- package/dist/types/master/pool-node.d.ts.map +0 -1
|
@@ -1,17 +1,120 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
1
2
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
3
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
4
|
}) : x)(function(x) {
|
|
4
5
|
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
6
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
7
|
});
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// src/master/implementation.browser.ts
|
|
14
|
+
var implementation_browser_exports = {};
|
|
15
|
+
__export(implementation_browser_exports, {
|
|
16
|
+
defaultPoolSize: () => defaultPoolSize,
|
|
17
|
+
getWorkerImplementation: () => getWorkerImplementation,
|
|
18
|
+
isWorkerRuntime: () => isWorkerRuntime
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// src/master/get-bundle-url.browser.ts
|
|
22
|
+
var bundleURL;
|
|
23
|
+
function getBundleURLCached() {
|
|
24
|
+
if (!bundleURL) {
|
|
25
|
+
bundleURL = getBundleURL();
|
|
26
|
+
}
|
|
27
|
+
return bundleURL;
|
|
28
|
+
}
|
|
29
|
+
function getBundleURL() {
|
|
30
|
+
try {
|
|
31
|
+
throw new Error("getBundleURL failed");
|
|
32
|
+
} catch (ex) {
|
|
33
|
+
const err = ex;
|
|
34
|
+
const matches = ("" + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\/\/[^\n)]+/g);
|
|
35
|
+
if (matches) {
|
|
36
|
+
return getBaseURL(matches[0]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return "/";
|
|
40
|
+
}
|
|
41
|
+
function getBaseURL(url) {
|
|
42
|
+
return ("" + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\/\/.+)?\/[^/]+(?:\?.*)?$/, "$1") + "/";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// src/master/implementation.browser.ts
|
|
46
|
+
var defaultPoolSize = typeof navigator !== "undefined" && navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4;
|
|
47
|
+
var isAbsoluteURL = (value) => /^[A-Za-z][\d+.A-Za-z\-]*:/.test(value);
|
|
48
|
+
function createSourceBlobURL(code) {
|
|
49
|
+
const blob = new Blob([code], { type: "application/javascript" });
|
|
50
|
+
return URL.createObjectURL(blob);
|
|
51
|
+
}
|
|
52
|
+
function selectWorkerImplementation() {
|
|
53
|
+
if (typeof Worker === "undefined") {
|
|
54
|
+
return class NoWebWorker {
|
|
55
|
+
constructor() {
|
|
56
|
+
throw new Error(
|
|
57
|
+
"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers."
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
class WebWorker extends Worker {
|
|
63
|
+
constructor(url, options) {
|
|
64
|
+
if (typeof url === "string" && options && options._baseURL) {
|
|
65
|
+
url = new URL(url, options._baseURL);
|
|
66
|
+
} else if (typeof url === "string" && !isAbsoluteURL(url) && /^file:\/\//i.test(getBundleURLCached())) {
|
|
67
|
+
url = new URL(url, getBundleURLCached().replace(/\/[^/]+$/, "/"));
|
|
68
|
+
if (options?.CORSWorkaround ?? true) {
|
|
69
|
+
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (typeof url === "string" && isAbsoluteURL(url) && (options?.CORSWorkaround ?? true)) {
|
|
73
|
+
url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`);
|
|
74
|
+
}
|
|
75
|
+
super(url, options);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
class BlobWorker2 extends WebWorker {
|
|
79
|
+
constructor(blob, options) {
|
|
80
|
+
const url = globalThis.URL.createObjectURL(blob);
|
|
81
|
+
super(url, options);
|
|
82
|
+
}
|
|
83
|
+
static fromText(source, options) {
|
|
84
|
+
const blob = new globalThis.Blob([source], { type: "text/javascript" });
|
|
85
|
+
return new BlobWorker2(blob, options);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
blob: BlobWorker2,
|
|
90
|
+
default: WebWorker
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
var implementation;
|
|
94
|
+
function getWorkerImplementation() {
|
|
95
|
+
if (!implementation) {
|
|
96
|
+
implementation = selectWorkerImplementation();
|
|
97
|
+
}
|
|
98
|
+
return implementation;
|
|
99
|
+
}
|
|
100
|
+
function isWorkerRuntime() {
|
|
101
|
+
const isWindowContext = typeof globalThis !== "undefined" && typeof Window !== "undefined" && globalThis instanceof Window;
|
|
102
|
+
return typeof globalThis !== "undefined" && self["postMessage"] && !isWindowContext ? true : false;
|
|
103
|
+
}
|
|
7
104
|
|
|
8
105
|
// src/master/implementation.node.ts
|
|
106
|
+
var implementation_node_exports = {};
|
|
107
|
+
__export(implementation_node_exports, {
|
|
108
|
+
defaultPoolSize: () => defaultPoolSize2,
|
|
109
|
+
getWorkerImplementation: () => getWorkerImplementation2,
|
|
110
|
+
isWorkerRuntime: () => isWorkerRuntime2
|
|
111
|
+
});
|
|
9
112
|
import { EventEmitter } from "node:events";
|
|
10
113
|
import { cpus } from "node:os";
|
|
11
114
|
import path from "node:path";
|
|
12
115
|
import { cwd } from "node:process";
|
|
13
116
|
import { Worker as NativeWorker } from "node:worker_threads";
|
|
14
|
-
var
|
|
117
|
+
var defaultPoolSize2 = cpus().length;
|
|
15
118
|
function resolveScriptPath(scriptPath, baseURL) {
|
|
16
119
|
const makeAbsolute = (filePath) => {
|
|
17
120
|
return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath);
|
|
@@ -21,7 +124,7 @@ function resolveScriptPath(scriptPath, baseURL) {
|
|
|
21
124
|
}
|
|
22
125
|
function initWorkerThreadsWorker() {
|
|
23
126
|
let allWorkers = [];
|
|
24
|
-
class
|
|
127
|
+
class Worker3 extends NativeWorker {
|
|
25
128
|
mappedEventListeners;
|
|
26
129
|
constructor(scriptPath, options) {
|
|
27
130
|
const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL);
|
|
@@ -55,23 +158,23 @@ function initWorkerThreadsWorker() {
|
|
|
55
158
|
};
|
|
56
159
|
process.on("SIGINT", () => terminateWorkersAndMaster());
|
|
57
160
|
process.on("SIGTERM", () => terminateWorkersAndMaster());
|
|
58
|
-
class BlobWorker2 extends
|
|
161
|
+
class BlobWorker2 extends Worker3 {
|
|
59
162
|
constructor(blob, options) {
|
|
60
163
|
super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
|
|
61
164
|
}
|
|
62
165
|
static fromText(source, options) {
|
|
63
|
-
return new
|
|
166
|
+
return new Worker3(source, { ...options, fromSource: true });
|
|
64
167
|
}
|
|
65
168
|
}
|
|
66
169
|
return {
|
|
67
170
|
blob: BlobWorker2,
|
|
68
|
-
default:
|
|
171
|
+
default: Worker3
|
|
69
172
|
};
|
|
70
173
|
}
|
|
71
174
|
function initTinyWorker() {
|
|
72
175
|
const TinyWorker = __require("tiny-worker");
|
|
73
176
|
let allWorkers = [];
|
|
74
|
-
class
|
|
177
|
+
class Worker3 extends TinyWorker {
|
|
75
178
|
emitter;
|
|
76
179
|
constructor(scriptPath, options) {
|
|
77
180
|
const resolvedScriptPath = options && options.fromSource ? null : process.platform === "win32" ? `file:///${resolveScriptPath(scriptPath).replaceAll("\\", "/")}` : resolveScriptPath(scriptPath);
|
|
@@ -106,22 +209,22 @@ function initTinyWorker() {
|
|
|
106
209
|
};
|
|
107
210
|
process.on("SIGINT", () => terminateWorkersAndMaster());
|
|
108
211
|
process.on("SIGTERM", () => terminateWorkersAndMaster());
|
|
109
|
-
class BlobWorker2 extends
|
|
212
|
+
class BlobWorker2 extends Worker3 {
|
|
110
213
|
constructor(blob, options) {
|
|
111
214
|
super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
|
|
112
215
|
}
|
|
113
216
|
static fromText(source, options) {
|
|
114
|
-
return new
|
|
217
|
+
return new Worker3(source, { ...options, fromSource: true });
|
|
115
218
|
}
|
|
116
219
|
}
|
|
117
220
|
return {
|
|
118
221
|
blob: BlobWorker2,
|
|
119
|
-
default:
|
|
222
|
+
default: Worker3
|
|
120
223
|
};
|
|
121
224
|
}
|
|
122
|
-
var
|
|
225
|
+
var implementation2;
|
|
123
226
|
var isTinyWorker;
|
|
124
|
-
function
|
|
227
|
+
function selectWorkerImplementation2() {
|
|
125
228
|
try {
|
|
126
229
|
isTinyWorker = false;
|
|
127
230
|
return initWorkerThreadsWorker();
|
|
@@ -132,13 +235,13 @@ function selectWorkerImplementation() {
|
|
|
132
235
|
return initTinyWorker();
|
|
133
236
|
}
|
|
134
237
|
}
|
|
135
|
-
function
|
|
136
|
-
if (!
|
|
137
|
-
|
|
238
|
+
function getWorkerImplementation2() {
|
|
239
|
+
if (!implementation2) {
|
|
240
|
+
implementation2 = selectWorkerImplementation2();
|
|
138
241
|
}
|
|
139
|
-
return
|
|
242
|
+
return implementation2;
|
|
140
243
|
}
|
|
141
|
-
function
|
|
244
|
+
function isWorkerRuntime2() {
|
|
142
245
|
if (isTinyWorker) {
|
|
143
246
|
return globalThis !== void 0 && self["postMessage"] ? true : false;
|
|
144
247
|
} else {
|
|
@@ -147,16 +250,23 @@ function isWorkerRuntime() {
|
|
|
147
250
|
}
|
|
148
251
|
}
|
|
149
252
|
|
|
150
|
-
// src/master/
|
|
151
|
-
var
|
|
152
|
-
var
|
|
253
|
+
// src/master/implementation.ts
|
|
254
|
+
var runningInNode = typeof process !== "undefined" && process.arch !== "browser" && "pid" in process;
|
|
255
|
+
var implementation3 = runningInNode ? implementation_node_exports : implementation_browser_exports;
|
|
256
|
+
var defaultPoolSize3 = implementation3.defaultPoolSize;
|
|
257
|
+
var getWorkerImplementation3 = implementation3.getWorkerImplementation;
|
|
258
|
+
var isWorkerRuntime3 = implementation3.isWorkerRuntime;
|
|
259
|
+
|
|
260
|
+
// src/master/index.ts
|
|
261
|
+
var BlobWorker = getWorkerImplementation3().blob;
|
|
262
|
+
var Worker2 = getWorkerImplementation3().default;
|
|
153
263
|
|
|
154
264
|
// src/master/register.ts
|
|
155
265
|
if (typeof globalThis !== "undefined") {
|
|
156
266
|
;
|
|
157
|
-
globalThis.Worker =
|
|
267
|
+
globalThis.Worker = Worker2;
|
|
158
268
|
} else if (window !== void 0) {
|
|
159
269
|
;
|
|
160
|
-
window.Worker =
|
|
270
|
+
window.Worker = Worker2;
|
|
161
271
|
}
|
|
162
272
|
//# sourceMappingURL=register.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/master/implementation.node.ts","../../../src/master/index-node.ts","../../../src/master/register.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-require-imports */\n\n/* eslint-disable unicorn/prefer-add-event-listener */\n/* eslint-disable unicorn/prefer-event-target */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unicorn/text-encoding-identifier-case */\n\nimport { EventEmitter } from 'node:events'\nimport { cpus } from 'node:os'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { Worker as NativeWorker } from 'node:worker_threads'\n\nimport type {\n ImplementationExport, ThreadsWorkerOptions, WorkerImplementation,\n// eslint-disable-next-line import-x/no-internal-modules\n} from '../types/master.ts'\n\ndeclare const __non_webpack_require__: typeof require\n\ntype WorkerEventName = 'error' | 'message'\n\nexport const defaultPoolSize = cpus().length\n\nfunction resolveScriptPath(scriptPath: string, baseURL?: string | undefined) {\n const makeAbsolute = (filePath: string) => {\n return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath)\n }\n\n const absolutePath = makeAbsolute(scriptPath)\n return absolutePath\n}\n\nfunction initWorkerThreadsWorker(): ImplementationExport {\n let allWorkers: Array<NativeWorker> = []\n\n class Worker extends NativeWorker {\n private mappedEventListeners: WeakMap<EventListener, EventListener>\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource: boolean }) {\n const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL)\n if (resolvedScriptPath) {\n super(resolvedScriptPath, options)\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(sourceCode, { ...options, eval: true })\n }\n\n this.mappedEventListeners = new WeakMap()\n allWorkers.push(this)\n }\n\n addEventListener(eventName: string, rawListener: EventListener) {\n const listener = (message: any) => {\n rawListener({ data: message } as any)\n }\n this.mappedEventListeners.set(rawListener, listener)\n this.on(eventName, listener)\n }\n\n removeEventListener(eventName: string, rawListener: EventListener) {\n const listener = this.mappedEventListeners.get(rawListener) || rawListener\n this.off(eventName, listener)\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind. See #147.\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nfunction initTinyWorker(): ImplementationExport {\n const TinyWorker = require('tiny-worker')\n\n let allWorkers: Array<typeof TinyWorker> = []\n\n class Worker extends TinyWorker {\n private emitter: EventEmitter\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource?: boolean }) {\n // Need to apply a work-around for Windows or it will choke upon the absolute path\n // (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)\n const resolvedScriptPath\n = options && options.fromSource\n ? null\n : process.platform === 'win32'\n ? `file:///${resolveScriptPath(scriptPath).replaceAll('\\\\', '/')}`\n : resolveScriptPath(scriptPath)\n\n if (resolvedScriptPath) {\n super(resolvedScriptPath, [], { esm: true })\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(new Function(sourceCode), [], { esm: true })\n }\n\n allWorkers.push(this)\n\n this.emitter = new EventEmitter()\n this.onerror = (error: Error) => this.emitter.emit('error', error)\n this.onmessage = (message: MessageEvent) => this.emitter.emit('message', message)\n }\n\n addEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.addListener(eventName, listener)\n }\n\n removeEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.removeListener(eventName, listener)\n }\n\n terminate() {\n allWorkers = allWorkers.filter(worker => worker !== this)\n return super.terminate()\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind\n // See <https://github.com/avoidwork/tiny-worker#faq>\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nlet implementation: ImplementationExport\nlet isTinyWorker: boolean\n\nfunction selectWorkerImplementation(): ImplementationExport {\n try {\n isTinyWorker = false\n return initWorkerThreadsWorker()\n } catch (ex) {\n console.error(ex)\n // tslint:disable-next-line no-console\n console.debug('Node worker_threads not available. Trying to fall back to tiny-worker polyfill...')\n isTinyWorker = true\n return initTinyWorker()\n }\n}\n\nexport function getWorkerImplementation(): ImplementationExport {\n if (!implementation) {\n implementation = selectWorkerImplementation()\n }\n return implementation\n}\n\nexport function isWorkerRuntime() {\n if (isTinyWorker) {\n return globalThis !== undefined && self['postMessage'] ? true : false\n } else {\n // Webpack hack\n const isMainThread\n = typeof __non_webpack_require__ === 'function'\n ? __non_webpack_require__('worker_threads').isMainThread\n : eval('require')('worker_threads').isMainThread\n return !isMainThread\n }\n}\n","/* eslint-disable import-x/no-internal-modules */\nimport type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts'\nimport * as NodeImplementation from './implementation.node.ts'\n\nexport type { FunctionThread, ModuleThread } from '../types/master.ts'\nexport { Pool } from './pool-browser.ts'\nexport { spawn } from './spawn.ts'\nexport { Thread } from './thread.ts'\n\nexport type BlobWorker = typeof BlobWorkerClass\nexport type Worker = WorkerType\n\n/** Separate class to spawn workers from source code blobs or strings. */\nexport const BlobWorker = NodeImplementation.getWorkerImplementation().blob\n\n/** Worker implementation. Either web worker or a node.js Worker class. */\nexport const Worker = NodeImplementation.getWorkerImplementation().default\n\nexport { isWorkerRuntime } from './implementation.node.ts'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Worker as WorkerImplementation } from './index-node.ts'\n\ndeclare const window: any\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).Worker = WorkerImplementation\n} else if (window !== undefined) {\n ;(window as any).Worker = WorkerImplementation\n}\n"],"mappings":"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","names":["Worker","BlobWorker"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/master/implementation.browser.ts","../../../src/master/get-bundle-url.browser.ts","../../../src/master/implementation.node.ts","../../../src/master/implementation.ts","../../../src/master/index.ts","../../../src/master/register.ts"],"sourcesContent":["/* eslint-disable @stylistic/max-len */\n/* eslint-disable import-x/no-internal-modules */\n// tslint:disable max-classes-per-file\n\nimport type { ImplementationExport, ThreadsWorkerOptions } from '../types/master.ts'\nimport { getBundleURL } from './get-bundle-url.browser.ts'\n\nexport const defaultPoolSize = typeof navigator !== 'undefined' && navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4\n\nconst isAbsoluteURL = (value: string) => /^[A-Za-z][\\d+.A-Za-z\\-]*:/.test(value)\n\nfunction createSourceBlobURL(code: string): string {\n const blob = new Blob([code], { type: 'application/javascript' })\n return URL.createObjectURL(blob)\n}\n\nfunction selectWorkerImplementation(): ImplementationExport {\n if (typeof Worker === 'undefined') {\n // Might happen on Safari, for instance\n // The idea is to only fail if the constructor is actually used\n return class NoWebWorker {\n constructor() {\n throw new Error(\n \"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.\",\n )\n }\n } as unknown as ImplementationExport\n }\n\n class WebWorker extends Worker {\n constructor(url: string | URL, options?: ThreadsWorkerOptions) {\n if (typeof url === 'string' && options && options._baseURL) {\n url = new URL(url, options._baseURL)\n } else if (typeof url === 'string' && !isAbsoluteURL(url) && /^file:\\/\\//i.test(getBundleURL())) {\n url = new URL(url, getBundleURL().replace(/\\/[^/]+$/, '/'))\n if (options?.CORSWorkaround ?? true) {\n url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`)\n }\n }\n if (\n typeof url === 'string'\n && isAbsoluteURL(url) // Create source code blob loading JS file via `importScripts()`\n // to circumvent worker CORS restrictions\n && (options?.CORSWorkaround ?? true)\n ) {\n url = createSourceBlobURL(`importScripts(${JSON.stringify(url)});`)\n }\n super(url, options)\n }\n }\n\n class BlobWorker extends WebWorker {\n constructor(blob: Blob, options?: ThreadsWorkerOptions) {\n const url = globalThis.URL.createObjectURL(blob)\n super(url, options)\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WebWorker {\n const blob = new globalThis.Blob([source], { type: 'text/javascript' })\n return new BlobWorker(blob, options)\n }\n }\n\n return {\n blob: BlobWorker,\n default: WebWorker,\n }\n}\n\nlet implementation: ImplementationExport\n\nexport function getWorkerImplementation(): ImplementationExport {\n if (!implementation) {\n implementation = selectWorkerImplementation()\n }\n return implementation\n}\n\nexport function isWorkerRuntime() {\n const isWindowContext = typeof globalThis !== 'undefined' && typeof Window !== 'undefined' && globalThis instanceof Window\n return typeof globalThis !== 'undefined' && self['postMessage'] && !isWindowContext ? true : false\n}\n","// Source: <https://github.com/parcel-bundler/parcel/blob/master/packages/core/parcel-bundler/src/builtins/bundle-url.js>\n\nlet bundleURL: string | undefined\n\nfunction getBundleURLCached(): string {\n if (!bundleURL) {\n bundleURL = getBundleURL()\n }\n\n return bundleURL\n}\n\nfunction getBundleURL(): string {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error('getBundleURL failed')\n } catch (ex) {\n const err = ex as Error\n const matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^\\n)]+/g)\n if (matches) {\n return getBaseURL(matches[0])\n }\n }\n\n return '/'\n}\n\nfunction getBaseURL(url: string): string {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/, '$1') + '/'\n}\n\nexport { getBundleURLCached as getBundleURL }\n","/* eslint-disable @typescript-eslint/no-require-imports */\n\n/* eslint-disable unicorn/prefer-add-event-listener */\n/* eslint-disable unicorn/prefer-event-target */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable unicorn/text-encoding-identifier-case */\n\nimport { EventEmitter } from 'node:events'\nimport { cpus } from 'node:os'\nimport path from 'node:path'\nimport { cwd } from 'node:process'\nimport { Worker as NativeWorker } from 'node:worker_threads'\n\nimport type {\n ImplementationExport, ThreadsWorkerOptions, WorkerImplementation,\n// eslint-disable-next-line import-x/no-internal-modules\n} from '../types/master.ts'\n\ndeclare const __non_webpack_require__: typeof require\n\ntype WorkerEventName = 'error' | 'message'\n\nexport const defaultPoolSize = cpus().length\n\nfunction resolveScriptPath(scriptPath: string, baseURL?: string | undefined) {\n const makeAbsolute = (filePath: string) => {\n return path.isAbsolute(filePath) ? filePath : path.join(baseURL ?? cwd(), filePath)\n }\n\n const absolutePath = makeAbsolute(scriptPath)\n return absolutePath\n}\n\nfunction initWorkerThreadsWorker(): ImplementationExport {\n let allWorkers: Array<NativeWorker> = []\n\n class Worker extends NativeWorker {\n private mappedEventListeners: WeakMap<EventListener, EventListener>\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource: boolean }) {\n const resolvedScriptPath = options && options.fromSource ? null : resolveScriptPath(scriptPath, (options ?? {})._baseURL)\n if (resolvedScriptPath) {\n super(resolvedScriptPath, options)\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(sourceCode, { ...options, eval: true })\n }\n\n this.mappedEventListeners = new WeakMap()\n allWorkers.push(this)\n }\n\n addEventListener(eventName: string, rawListener: EventListener) {\n const listener = (message: any) => {\n rawListener({ data: message } as any)\n }\n this.mappedEventListeners.set(rawListener, listener)\n this.on(eventName, listener)\n }\n\n removeEventListener(eventName: string, rawListener: EventListener) {\n const listener = this.mappedEventListeners.get(rawListener) || rawListener\n this.off(eventName, listener)\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind. See #147.\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nfunction initTinyWorker(): ImplementationExport {\n const TinyWorker = require('tiny-worker')\n\n let allWorkers: Array<typeof TinyWorker> = []\n\n class Worker extends TinyWorker {\n private emitter: EventEmitter\n\n constructor(scriptPath: string, options?: ThreadsWorkerOptions & { fromSource?: boolean }) {\n // Need to apply a work-around for Windows or it will choke upon the absolute path\n // (`Error [ERR_INVALID_PROTOCOL]: Protocol 'c:' not supported`)\n const resolvedScriptPath\n = options && options.fromSource\n ? null\n : process.platform === 'win32'\n ? `file:///${resolveScriptPath(scriptPath).replaceAll('\\\\', '/')}`\n : resolveScriptPath(scriptPath)\n\n if (resolvedScriptPath) {\n super(resolvedScriptPath, [], { esm: true })\n } else {\n // `options.fromSource` is true\n const sourceCode = scriptPath\n super(new Function(sourceCode), [], { esm: true })\n }\n\n allWorkers.push(this)\n\n this.emitter = new EventEmitter()\n this.onerror = (error: Error) => this.emitter.emit('error', error)\n this.onmessage = (message: MessageEvent) => this.emitter.emit('message', message)\n }\n\n addEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.addListener(eventName, listener)\n }\n\n removeEventListener(eventName: WorkerEventName, listener: EventListener) {\n this.emitter.removeListener(eventName, listener)\n }\n\n terminate() {\n allWorkers = allWorkers.filter(worker => worker !== this)\n return super.terminate()\n }\n }\n\n const terminateWorkersAndMaster = () => {\n // we should terminate all workers and then gracefully shutdown self process\n Promise.all(allWorkers.map(worker => worker.terminate())).then(\n () => process.exit(0),\n () => process.exit(1),\n )\n allWorkers = []\n }\n\n // Take care to not leave orphaned processes behind\n // See <https://github.com/avoidwork/tiny-worker#faq>\n process.on('SIGINT', () => terminateWorkersAndMaster())\n process.on('SIGTERM', () => terminateWorkersAndMaster())\n\n class BlobWorker extends Worker {\n constructor(blob: Uint8Array, options?: ThreadsWorkerOptions) {\n super(Buffer.from(blob).toString('utf-8'), { ...options, fromSource: true })\n }\n\n static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation {\n return new Worker(source, { ...options, fromSource: true }) as any\n }\n }\n\n return {\n blob: BlobWorker as any,\n default: Worker as any,\n }\n}\n\nlet implementation: ImplementationExport\nlet isTinyWorker: boolean\n\nfunction selectWorkerImplementation(): ImplementationExport {\n try {\n isTinyWorker = false\n return initWorkerThreadsWorker()\n } catch (ex) {\n console.error(ex)\n // tslint:disable-next-line no-console\n console.debug('Node worker_threads not available. Trying to fall back to tiny-worker polyfill...')\n isTinyWorker = true\n return initTinyWorker()\n }\n}\n\nexport function getWorkerImplementation(): ImplementationExport {\n if (!implementation) {\n implementation = selectWorkerImplementation()\n }\n return implementation\n}\n\nexport function isWorkerRuntime() {\n if (isTinyWorker) {\n return globalThis !== undefined && self['postMessage'] ? true : false\n } else {\n // Webpack hack\n const isMainThread\n = typeof __non_webpack_require__ === 'function'\n ? __non_webpack_require__('worker_threads').isMainThread\n : eval('require')('worker_threads').isMainThread\n return !isMainThread\n }\n}\n","/*\n * This file is only a stub to make './implementation' resolve to the right module.\n */\n\n// We alias `src/master/implementation` to `src/master/implementation.browser` for web\n// browsers already in the package.json, so if get here, it's safe to pass-through the\n// node implementation\n\nimport * as BrowserImplementation from './implementation.browser.ts'\nimport * as NodeImplementation from './implementation.node.ts'\n\nconst runningInNode = typeof process !== 'undefined' && (process.arch as string) !== 'browser' && 'pid' in process\nconst implementation = runningInNode ? NodeImplementation : BrowserImplementation\n\n/** Default size of pools. Depending on the platform the value might vary from device to device. */\nexport const defaultPoolSize = implementation.defaultPoolSize\n\nexport const getWorkerImplementation = implementation.getWorkerImplementation\n\n/** Returns `true` if this code is currently running in a worker. */\nexport const isWorkerRuntime = implementation.isWorkerRuntime\n","/* eslint-disable import-x/no-internal-modules */\nimport type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts'\nimport { getWorkerImplementation } from './implementation.ts'\n\nexport type { FunctionThread, ModuleThread } from '../types/master.ts'\nexport { Pool } from './pool.ts'\nexport { spawn } from './spawn.ts'\nexport { Thread } from './thread.ts'\n\nexport type BlobWorker = typeof BlobWorkerClass\nexport type Worker = WorkerType\n\n/** Separate class to spawn workers from source code blobs or strings. */\nexport const BlobWorker = getWorkerImplementation().blob\n\n/** Worker implementation. Either web worker or a node.js Worker class. */\nexport const Worker = getWorkerImplementation().default\n\nexport { isWorkerRuntime } from './implementation.ts'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n// eslint-disable-next-line no-restricted-imports\nimport { Worker as WorkerImplementation } from './index.ts'\n\ndeclare const window: any\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).Worker = WorkerImplementation\n} else if (window !== undefined) {\n ;(window as any).Worker = WorkerImplementation\n}\n"],"mappings":"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","names":["BlobWorker","defaultPoolSize","getWorkerImplementation","isWorkerRuntime","Worker","BlobWorker","implementation","selectWorkerImplementation","implementation","defaultPoolSize","getWorkerImplementation","isWorkerRuntime","getWorkerImplementation","Worker","Worker"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { registerSerializer } from './common.ts';
|
|
2
|
-
export * from './master/index
|
|
3
|
-
export type { QueuedTask } from './master/pool
|
|
2
|
+
export * from './master/index.ts';
|
|
3
|
+
export type { QueuedTask } from './master/pool.ts';
|
|
4
4
|
export type { ExposedToThreadType as ExposedAs } from './master/spawn.ts';
|
|
5
5
|
export type { JsonSerializable, Serializer, SerializerImplementation, } from './serializers.ts';
|
|
6
6
|
export { DefaultSerializer } from './serializers.ts';
|
|
7
7
|
export type { TransferDescriptor } from './transferable.ts';
|
|
8
8
|
export { Transfer } from './transferable.ts';
|
|
9
|
-
//# sourceMappingURL=index
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,cAAc,mBAAmB,CAAA;AACjC,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,mBAAmB,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzE,YAAY,EACV,gBAAgB,EAAE,UAAU,EAAE,wBAAwB,GACvD,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as BrowserImplementation from './implementation.browser.ts';
|
|
2
|
+
/** Default size of pools. Depending on the platform the value might vary from device to device. */
|
|
3
|
+
export declare const defaultPoolSize: number;
|
|
4
|
+
export declare const getWorkerImplementation: typeof BrowserImplementation.getWorkerImplementation;
|
|
5
|
+
/** Returns `true` if this code is currently running in a worker. */
|
|
6
|
+
export declare const isWorkerRuntime: typeof BrowserImplementation.isWorkerRuntime;
|
|
7
|
+
//# sourceMappingURL=implementation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/master/implementation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAA;AAMpE,mGAAmG;AACnG,eAAO,MAAM,eAAe,QAAiC,CAAA;AAE7D,eAAO,MAAM,uBAAuB,sDAAyC,CAAA;AAE7E,oEAAoE;AACpE,eAAO,MAAM,eAAe,8CAAiC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BlobWorker as BlobWorkerClass, Worker as WorkerType } from '../types/master.ts';
|
|
2
2
|
export type { FunctionThread, ModuleThread } from '../types/master.ts';
|
|
3
|
-
export { Pool } from './pool
|
|
3
|
+
export { Pool } from './pool.ts';
|
|
4
4
|
export { spawn } from './spawn.ts';
|
|
5
5
|
export { Thread } from './thread.ts';
|
|
6
6
|
export type BlobWorker = typeof BlobWorkerClass;
|
|
@@ -9,5 +9,5 @@ export type Worker = WorkerType;
|
|
|
9
9
|
export declare const BlobWorker: typeof BlobWorkerClass;
|
|
10
10
|
/** Worker implementation. Either web worker or a node.js Worker class. */
|
|
11
11
|
export declare const Worker: typeof import("../types/master.ts").WorkerImplementation;
|
|
12
|
-
export { isWorkerRuntime } from './implementation.
|
|
13
|
-
//# sourceMappingURL=index
|
|
12
|
+
export { isWorkerRuntime } from './implementation.ts';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/master/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG7F,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG,OAAO,eAAe,CAAA;AAC/C,MAAM,MAAM,MAAM,GAAG,UAAU,CAAA;AAE/B,yEAAyE;AACzE,eAAO,MAAM,UAAU,wBAAiC,CAAA;AAExD,0EAA0E;AAC1E,eAAO,MAAM,MAAM,0DAAoC,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -90,4 +90,4 @@ export declare const Pool: typeof PoolConstructor & {
|
|
|
90
90
|
export type { PoolEvent, QueuedTask } from './pool-types.ts';
|
|
91
91
|
export { PoolEventType } from './pool-types.ts';
|
|
92
92
|
export { Thread } from './thread.ts';
|
|
93
|
-
//# sourceMappingURL=pool
|
|
93
|
+
//# sourceMappingURL=pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/master/pool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/threads",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0-rc.2",
|
|
4
|
+
"stableVersion": "4.7.1",
|
|
4
5
|
"description": "Web workers & worker threads as simple as a function call",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"thread",
|
|
@@ -32,14 +33,8 @@
|
|
|
32
33
|
"type": "module",
|
|
33
34
|
"exports": {
|
|
34
35
|
".": {
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"import": "./dist/browser/index-browser.mjs"
|
|
38
|
-
},
|
|
39
|
-
"node": {
|
|
40
|
-
"types": "./dist/types/index-node.d.ts",
|
|
41
|
-
"import": "./dist/node/index-node.mjs"
|
|
42
|
-
}
|
|
36
|
+
"types": "./dist/types/index.d.ts",
|
|
37
|
+
"import": "./dist/neutral/index.mjs"
|
|
43
38
|
},
|
|
44
39
|
"./implementation": {
|
|
45
40
|
"browser": {
|
|
@@ -49,17 +44,13 @@
|
|
|
49
44
|
"node": {
|
|
50
45
|
"types": "./dist/types/master/implementation.node.d.ts",
|
|
51
46
|
"import": "./dist/node/master/implementation.node.mjs"
|
|
52
|
-
}
|
|
47
|
+
},
|
|
48
|
+
"types": "./dist/types/master/implementation.d.ts",
|
|
49
|
+
"import": "./dist/neutral/master/implementation.mjs"
|
|
53
50
|
},
|
|
54
51
|
"./master": {
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
"import": "./dist/browser/master/index-browser.mjs"
|
|
58
|
-
},
|
|
59
|
-
"node": {
|
|
60
|
-
"types": "./dist/types/master/index-node.d.ts",
|
|
61
|
-
"import": "./dist/node/master/index-node.mjs"
|
|
62
|
-
}
|
|
52
|
+
"types": "./dist/types/master/index.d.ts",
|
|
53
|
+
"import": "./dist/neutral/master/index.mjs"
|
|
63
54
|
},
|
|
64
55
|
"./spawn": {
|
|
65
56
|
"types": "./dist/types/master/spawn.d.ts",
|
|
@@ -77,14 +68,8 @@
|
|
|
77
68
|
"import": "./dist/neutral/observable.mjs"
|
|
78
69
|
},
|
|
79
70
|
"./pool": {
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
"import": "./dist/browser/master/pool-browser.mjs"
|
|
83
|
-
},
|
|
84
|
-
"node": {
|
|
85
|
-
"types": "./dist/types/master/pool-node.d.ts",
|
|
86
|
-
"import": "./dist/node/master/pool-node.mjs"
|
|
87
|
-
}
|
|
71
|
+
"types": "./dist/types/master/pool.d.ts",
|
|
72
|
+
"import": "./dist/neutral/master/pool.mjs"
|
|
88
73
|
},
|
|
89
74
|
"./observable-promise": {
|
|
90
75
|
"types": "./dist/types/observable-promise.d.ts",
|
|
@@ -105,8 +90,8 @@
|
|
|
105
90
|
}
|
|
106
91
|
}
|
|
107
92
|
},
|
|
108
|
-
"module": "dist/
|
|
109
|
-
"types": "dist/types/index
|
|
93
|
+
"module": "dist/neutral/index.mjs",
|
|
94
|
+
"types": "dist/types/index.d.ts",
|
|
110
95
|
"files": [
|
|
111
96
|
"dist"
|
|
112
97
|
],
|