@xylabs/threads 4.6.4 → 4.7.0
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/implementation.browser.mjs +89 -0
- package/dist/browser/master/implementation.browser.mjs.map +1 -0
- package/dist/browser/worker/worker.browser.mjs +291 -0
- package/dist/browser/worker/worker.browser.mjs.map +1 -0
- package/dist/neutral/index.mjs +1022 -0
- 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/neutral/master/index.mjs +988 -0
- package/dist/neutral/master/index.mjs.map +1 -0
- package/dist/neutral/master/pool.mjs +579 -0
- package/dist/neutral/master/pool.mjs.map +1 -0
- package/dist/neutral/master/register.mjs +272 -0
- package/dist/neutral/master/register.mjs.map +1 -0
- package/dist/neutral/master/spawn.mjs +412 -0
- package/dist/neutral/master/spawn.mjs.map +1 -0
- package/dist/neutral/master/thread.mjs +29 -0
- package/dist/neutral/master/thread.mjs.map +1 -0
- package/dist/neutral/observable-promise.mjs +132 -0
- package/dist/neutral/observable-promise.mjs.map +1 -0
- package/dist/neutral/observable.mjs +31 -0
- package/dist/neutral/observable.mjs.map +1 -0
- package/dist/node/master/implementation.node.mjs +154 -0
- package/dist/node/master/implementation.node.mjs.map +1 -0
- package/dist/node/worker/worker.node.mjs +304 -0
- package/dist/node/worker/worker.node.mjs.map +1 -0
- package/dist/{common.d.ts → types/common.d.ts} +5 -1
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{master → types/master}/get-bundle-url.browser.d.ts +1 -0
- package/dist/types/master/get-bundle-url.browser.d.ts.map +1 -0
- package/dist/{master → types/master}/implementation.browser.d.ts +2 -1
- package/dist/types/master/implementation.browser.d.ts.map +1 -0
- package/dist/{master → types/master}/implementation.d.ts +4 -1
- package/dist/types/master/implementation.d.ts.map +1 -0
- package/dist/{master → types/master}/implementation.node.d.ts +2 -1
- package/dist/types/master/implementation.node.d.ts.map +1 -0
- package/dist/types/master/index.d.ts +13 -0
- package/dist/types/master/index.d.ts.map +1 -0
- package/dist/{master → types/master}/invocation-proxy.d.ts +2 -1
- package/dist/types/master/invocation-proxy.d.ts.map +1 -0
- package/dist/{master → types/master}/pool-types.d.ts +16 -1
- package/dist/types/master/pool-types.d.ts.map +1 -0
- package/dist/types/master/pool.d.ts +93 -0
- package/dist/types/master/pool.d.ts.map +1 -0
- package/dist/types/master/register.d.ts +2 -0
- package/dist/types/master/register.d.ts.map +1 -0
- package/dist/{master → types/master}/spawn.d.ts +12 -2
- package/dist/types/master/spawn.d.ts.map +1 -0
- package/dist/types/master/thread.d.ts +13 -0
- package/dist/types/master/thread.d.ts.map +1 -0
- package/dist/{observable-promise.d.ts → types/observable-promise.d.ts} +14 -0
- package/dist/types/observable-promise.d.ts.map +1 -0
- package/dist/types/observable.d.ts +21 -0
- package/dist/types/observable.d.ts.map +1 -0
- package/dist/{ponyfills.d.ts → types/ponyfills.d.ts} +1 -0
- package/dist/types/ponyfills.d.ts.map +1 -0
- package/dist/types/promise.d.ts +6 -0
- package/dist/types/promise.d.ts.map +1 -0
- package/dist/{serializers.d.ts → types/serializers.d.ts} +1 -0
- package/dist/types/serializers.d.ts.map +1 -0
- package/dist/{symbols.d.ts → types/symbols.d.ts} +1 -0
- package/dist/types/symbols.d.ts.map +1 -0
- package/dist/types/transferable.d.ts +43 -0
- package/dist/types/transferable.d.ts.map +1 -0
- package/dist/types/{master.d.ts → types/master.d.ts} +17 -3
- package/dist/types/types/master.d.ts.map +1 -0
- package/dist/types/{messages.d.ts → types/messages.d.ts} +1 -0
- package/dist/types/types/messages.d.ts.map +1 -0
- package/dist/types/{worker.d.ts → types/worker.d.ts} +1 -0
- package/dist/types/types/worker.d.ts.map +1 -0
- package/dist/types/worker/WorkerGlobalScope.d.ts +6 -0
- package/dist/types/worker/WorkerGlobalScope.d.ts.map +1 -0
- package/dist/types/worker/expose.d.ts +4 -0
- package/dist/types/worker/expose.d.ts.map +1 -0
- package/dist/types/worker/worker.browser.d.ts +14 -0
- package/dist/types/worker/worker.browser.d.ts.map +1 -0
- package/dist/types/worker/worker.node.d.ts +25 -0
- package/dist/types/worker/worker.node.d.ts.map +1 -0
- package/package.json +66 -77
- package/src/common.ts +10 -6
- package/src/index.ts +10 -9
- package/src/master/get-bundle-url.browser.ts +2 -1
- package/src/master/implementation.browser.ts +2 -2
- package/src/master/implementation.node.ts +19 -96
- package/src/master/implementation.ts +2 -2
- package/src/master/index.ts +7 -7
- package/src/master/invocation-proxy.ts +6 -6
- package/src/master/pool-types.ts +1 -1
- package/src/master/pool.ts +14 -13
- package/src/master/register.ts +2 -1
- package/src/master/spawn.ts +8 -8
- package/src/master/thread.ts +2 -2
- package/src/observable-promise.ts +3 -2
- package/src/serializers.ts +1 -1
- package/src/transferable.ts +2 -1
- package/src/types/master.ts +3 -3
- package/src/worker/WorkerGlobalScope.ts +5 -0
- package/src/worker/expose.ts +234 -0
- package/src/worker/is-observable.d.ts +7 -0
- package/src/worker/{implementation.browser.ts → worker.browser.ts} +26 -10
- package/src/worker/{implementation.worker_threads.ts → worker.node.ts} +30 -12
- package/types/is-observable.d.ts +1 -1
- package/xy.config.ts +24 -0
- package/dist/common.js +0 -16
- package/dist/esm/common.js +0 -16
- package/dist/esm/index.js +0 -26
- package/dist/esm/master/get-bundle-url.browser.js +0 -25
- package/dist/esm/master/implementation.browser.js +0 -65
- package/dist/esm/master/implementation.js +0 -43
- package/dist/esm/master/implementation.node.js +0 -205
- package/dist/esm/master/index.js +0 -14
- package/dist/esm/master/invocation-proxy.js +0 -121
- package/dist/esm/master/pool-types.js +0 -14
- package/dist/esm/master/pool.js +0 -262
- package/dist/esm/master/register.js +0 -11
- package/dist/esm/master/spawn.js +0 -114
- package/dist/esm/master/thread.js +0 -18
- package/dist/esm/observable-promise.js +0 -132
- package/dist/esm/observable.js +0 -33
- package/dist/esm/ponyfills.js +0 -20
- package/dist/esm/promise.js +0 -23
- package/dist/esm/serializers.js +0 -41
- package/dist/esm/symbols.js +0 -8
- package/dist/esm/transferable.js +0 -25
- package/dist/esm/types/master.js +0 -9
- package/dist/esm/types/messages.js +0 -16
- package/dist/esm/types/worker.js +0 -2
- package/dist/esm/worker/bundle-entry.js +0 -26
- package/dist/esm/worker/implementation.browser.js +0 -24
- package/dist/esm/worker/implementation.js +0 -19
- package/dist/esm/worker/implementation.tiny-worker.js +0 -37
- package/dist/esm/worker/implementation.worker_threads.js +0 -41
- package/dist/esm/worker/index.js +0 -174
- package/dist/esm/worker_threads.js +0 -13
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -26
- package/dist/master/get-bundle-url.browser.js +0 -25
- package/dist/master/implementation.browser.js +0 -65
- package/dist/master/implementation.js +0 -43
- package/dist/master/implementation.node.js +0 -205
- package/dist/master/index.d.ts +0 -10
- package/dist/master/index.js +0 -14
- package/dist/master/invocation-proxy.js +0 -121
- package/dist/master/pool-types.js +0 -14
- package/dist/master/pool.d.ts +0 -50
- package/dist/master/pool.js +0 -262
- package/dist/master/register.d.ts +0 -1
- package/dist/master/register.js +0 -11
- package/dist/master/spawn.js +0 -114
- package/dist/master/thread.d.ts +0 -8
- package/dist/master/thread.js +0 -18
- package/dist/observable-promise.js +0 -132
- package/dist/observable.d.ts +0 -11
- package/dist/observable.js +0 -33
- package/dist/ponyfills.js +0 -20
- package/dist/promise.d.ts +0 -1
- package/dist/promise.js +0 -23
- package/dist/serializers.js +0 -41
- package/dist/symbols.js +0 -8
- package/dist/transferable.d.ts +0 -9
- package/dist/transferable.js +0 -25
- package/dist/types/master.js +0 -9
- package/dist/types/messages.js +0 -16
- package/dist/types/worker.js +0 -2
- package/dist/worker/bundle-entry.d.ts +0 -1
- package/dist/worker/bundle-entry.js +0 -26
- package/dist/worker/implementation.browser.d.ts +0 -6
- package/dist/worker/implementation.browser.js +0 -24
- package/dist/worker/implementation.d.ts +0 -3
- package/dist/worker/implementation.js +0 -19
- package/dist/worker/implementation.tiny-worker.d.ts +0 -6
- package/dist/worker/implementation.tiny-worker.js +0 -37
- package/dist/worker/implementation.worker_threads.d.ts +0 -8
- package/dist/worker/implementation.worker_threads.js +0 -41
- package/dist/worker/index.d.ts +0 -5
- package/dist/worker/index.js +0 -174
- package/dist/worker_threads.d.ts +0 -8
- package/dist/worker_threads.js +0 -13
- package/observable.d.ts +0 -2
- package/observable.js +0 -2
- package/observable.mjs +0 -4
- package/register.d.ts +0 -2
- package/register.js +0 -2
- package/register.mjs +0 -1
- package/rollup.config.js +0 -16
- package/src/worker/bundle-entry.ts +0 -10
- package/src/worker/implementation.tiny-worker.ts +0 -55
- package/src/worker/implementation.ts +0 -23
- package/src/worker/index.ts +0 -230
- package/src/worker_threads.ts +0 -27
- package/test/lib/index.ts +0 -1
- package/test/lib/serialization.ts +0 -38
- package/test/observable-promise.test.ts +0 -205
- package/test/observable.test.ts +0 -87
- package/test/pool.test.ts +0 -183
- package/test/serialization.test.ts +0 -23
- package/test/spawn.chromium.mocha.ts +0 -53
- package/test/spawn.test.ts +0 -87
- package/test/streaming.test.ts +0 -29
- package/test/transferables.test.ts +0 -71
- package/test/workers/arraybuffer-xor.ts +0 -10
- package/test/workers/count-to-five.ts +0 -12
- package/test/workers/counter.ts +0 -19
- package/test/workers/faulty-function.ts +0 -5
- package/test/workers/hello-world.ts +0 -5
- package/test/workers/increment.ts +0 -8
- package/test/workers/minmax.ts +0 -25
- package/test/workers/serialization.ts +0 -13
- package/test/workers/top-level-throw.ts +0 -1
- package/test-tooling/rollup/app.js +0 -21
- package/test-tooling/rollup/rollup.config.ts +0 -14
- package/test-tooling/rollup/worker.js +0 -7
- package/test-tooling/tsconfig/minimal.ts +0 -12
- package/test-tooling/webpack/addition-worker.ts +0 -9
- package/test-tooling/webpack/app-with-inlined-worker.ts +0 -28
- package/test-tooling/webpack/app.ts +0 -61
- package/test-tooling/webpack/pool-worker.ts +0 -5
- package/test-tooling/webpack/raw-loader.d.ts +0 -4
- package/test-tooling/webpack/webpack.chromium.mocha.ts +0 -21
- package/test-tooling/webpack/webpack.node.config.js +0 -29
- package/test-tooling/webpack/webpack.web.config.js +0 -28
- package/types/webworker.d.ts +0 -9
- package/worker.d.ts +0 -2
- package/worker.js +0 -2
- package/worker.mjs +0 -6
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObservablePromise = void 0;
|
|
4
|
-
const observable_fns_1 = require("observable-fns");
|
|
5
|
-
const doNothing = () => { };
|
|
6
|
-
const returnInput = (input) => input;
|
|
7
|
-
const runDeferred = (fn) => Promise.resolve().then(fn);
|
|
8
|
-
function fail(error) {
|
|
9
|
-
throw error;
|
|
10
|
-
}
|
|
11
|
-
function isThenable(thing) {
|
|
12
|
-
return thing && typeof thing.then === 'function';
|
|
13
|
-
}
|
|
14
|
-
class ObservablePromise extends observable_fns_1.Observable {
|
|
15
|
-
[Symbol.toStringTag] = '[object ObservablePromise]';
|
|
16
|
-
initHasRun = false;
|
|
17
|
-
fulfillmentCallbacks = [];
|
|
18
|
-
rejectionCallbacks = [];
|
|
19
|
-
firstValue;
|
|
20
|
-
firstValueSet = false;
|
|
21
|
-
rejection;
|
|
22
|
-
state = 'pending';
|
|
23
|
-
constructor(init) {
|
|
24
|
-
super((originalObserver) => {
|
|
25
|
-
const self = this;
|
|
26
|
-
const observer = {
|
|
27
|
-
...originalObserver,
|
|
28
|
-
complete() {
|
|
29
|
-
originalObserver.complete();
|
|
30
|
-
self.onCompletion();
|
|
31
|
-
},
|
|
32
|
-
error(error) {
|
|
33
|
-
originalObserver.error(error);
|
|
34
|
-
self.onError(error);
|
|
35
|
-
},
|
|
36
|
-
next(value) {
|
|
37
|
-
originalObserver.next(value);
|
|
38
|
-
self.onNext(value);
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
try {
|
|
42
|
-
this.initHasRun = true;
|
|
43
|
-
return init(observer);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
observer.error(error);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
onNext(value) {
|
|
51
|
-
if (!this.firstValueSet) {
|
|
52
|
-
this.firstValue = value;
|
|
53
|
-
this.firstValueSet = true;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
onError(error) {
|
|
57
|
-
this.state = 'rejected';
|
|
58
|
-
this.rejection = error;
|
|
59
|
-
for (const onRejected of this.rejectionCallbacks) {
|
|
60
|
-
runDeferred(() => onRejected(error));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
onCompletion() {
|
|
64
|
-
this.state = 'fulfilled';
|
|
65
|
-
for (const onFulfilled of this.fulfillmentCallbacks) {
|
|
66
|
-
runDeferred(() => onFulfilled(this.firstValue));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
then(onFulfilledRaw, onRejectedRaw) {
|
|
70
|
-
const onFulfilled = onFulfilledRaw || returnInput;
|
|
71
|
-
const onRejected = onRejectedRaw || fail;
|
|
72
|
-
let onRejectedCalled = false;
|
|
73
|
-
return new Promise((resolve, reject) => {
|
|
74
|
-
const rejectionCallback = (error) => {
|
|
75
|
-
if (onRejectedCalled)
|
|
76
|
-
return;
|
|
77
|
-
onRejectedCalled = true;
|
|
78
|
-
try {
|
|
79
|
-
resolve(onRejected(error));
|
|
80
|
-
}
|
|
81
|
-
catch (anotherError) {
|
|
82
|
-
reject(anotherError);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
const fulfillmentCallback = (value) => {
|
|
86
|
-
try {
|
|
87
|
-
resolve(onFulfilled(value));
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
rejectionCallback(error);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
if (!this.initHasRun) {
|
|
94
|
-
this.subscribe({ error: rejectionCallback });
|
|
95
|
-
}
|
|
96
|
-
if (this.state === 'fulfilled') {
|
|
97
|
-
return resolve(onFulfilled(this.firstValue));
|
|
98
|
-
}
|
|
99
|
-
if (this.state === 'rejected') {
|
|
100
|
-
onRejectedCalled = true;
|
|
101
|
-
return resolve(onRejected(this.rejection));
|
|
102
|
-
}
|
|
103
|
-
this.fulfillmentCallbacks.push(fulfillmentCallback);
|
|
104
|
-
this.rejectionCallbacks.push(rejectionCallback);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
catch(onRejected) {
|
|
108
|
-
return this.then(undefined, onRejected);
|
|
109
|
-
}
|
|
110
|
-
finally(onCompleted) {
|
|
111
|
-
const handler = onCompleted || doNothing;
|
|
112
|
-
return this.then((value) => {
|
|
113
|
-
handler();
|
|
114
|
-
return value;
|
|
115
|
-
}, () => handler());
|
|
116
|
-
}
|
|
117
|
-
static from(thing) {
|
|
118
|
-
return isThenable(thing)
|
|
119
|
-
? new ObservablePromise((observer) => {
|
|
120
|
-
const onFulfilled = (value) => {
|
|
121
|
-
observer.next(value);
|
|
122
|
-
observer.complete();
|
|
123
|
-
};
|
|
124
|
-
const onRejected = (error) => {
|
|
125
|
-
observer.error(error);
|
|
126
|
-
};
|
|
127
|
-
thing.then(onFulfilled, onRejected);
|
|
128
|
-
})
|
|
129
|
-
: super.from(thing);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
exports.ObservablePromise = ObservablePromise;
|
package/dist/observable.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ObservableLike } from 'observable-fns';
|
|
2
|
-
import { Observable } from 'observable-fns';
|
|
3
|
-
declare const $observers: unique symbol;
|
|
4
|
-
export declare class Subject<T> extends Observable<T> implements ObservableLike<T> {
|
|
5
|
-
private [$observers];
|
|
6
|
-
constructor();
|
|
7
|
-
complete(): void;
|
|
8
|
-
error(error: any): void;
|
|
9
|
-
next(value: T): void;
|
|
10
|
-
}
|
|
11
|
-
export { Observable } from 'observable-fns';
|
package/dist/observable.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
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");
|
|
5
|
-
const $observers = Symbol('observers');
|
|
6
|
-
class Subject extends observable_fns_1.Observable {
|
|
7
|
-
[$observers];
|
|
8
|
-
constructor() {
|
|
9
|
-
super((observer) => {
|
|
10
|
-
this[$observers] = [...(this[$observers] || []), observer];
|
|
11
|
-
const unsubscribe = () => {
|
|
12
|
-
this[$observers] = this[$observers].filter(someObserver => someObserver !== observer);
|
|
13
|
-
};
|
|
14
|
-
return unsubscribe;
|
|
15
|
-
});
|
|
16
|
-
this[$observers] = [];
|
|
17
|
-
}
|
|
18
|
-
complete() {
|
|
19
|
-
for (const observer of this[$observers])
|
|
20
|
-
observer.complete();
|
|
21
|
-
}
|
|
22
|
-
error(error) {
|
|
23
|
-
for (const observer of this[$observers])
|
|
24
|
-
observer.error(error);
|
|
25
|
-
}
|
|
26
|
-
next(value) {
|
|
27
|
-
for (const observer of this[$observers])
|
|
28
|
-
observer.next(value);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
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; } });
|
package/dist/ponyfills.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.allSettled = allSettled;
|
|
4
|
-
function allSettled(values) {
|
|
5
|
-
return Promise.all(values.map((item) => {
|
|
6
|
-
const onFulfill = (value) => {
|
|
7
|
-
return { status: 'fulfilled', value };
|
|
8
|
-
};
|
|
9
|
-
const onReject = (reason) => {
|
|
10
|
-
return { reason, status: 'rejected' };
|
|
11
|
-
};
|
|
12
|
-
const itemPromise = Promise.resolve(item);
|
|
13
|
-
try {
|
|
14
|
-
return itemPromise.then(onFulfill, onReject);
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
return Promise.reject(error);
|
|
18
|
-
}
|
|
19
|
-
}));
|
|
20
|
-
}
|
package/dist/promise.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function createPromiseWithResolver<T>(): [Promise<T>, (result: T) => void];
|
package/dist/promise.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPromiseWithResolver = createPromiseWithResolver;
|
|
4
|
-
const doNothing = () => undefined;
|
|
5
|
-
function createPromiseWithResolver() {
|
|
6
|
-
let alreadyResolved = false;
|
|
7
|
-
let resolvedTo;
|
|
8
|
-
let resolver = doNothing;
|
|
9
|
-
const promise = new Promise((resolve) => {
|
|
10
|
-
if (alreadyResolved) {
|
|
11
|
-
resolve(resolvedTo);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
resolver = resolve;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
const exposedResolver = (value) => {
|
|
18
|
-
alreadyResolved = true;
|
|
19
|
-
resolvedTo = value;
|
|
20
|
-
resolver(resolvedTo);
|
|
21
|
-
};
|
|
22
|
-
return [promise, exposedResolver];
|
|
23
|
-
}
|
package/dist/serializers.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultSerializer = void 0;
|
|
4
|
-
exports.extendSerializer = extendSerializer;
|
|
5
|
-
function extendSerializer(extend, implementation) {
|
|
6
|
-
const fallbackDeserializer = extend.deserialize.bind(extend);
|
|
7
|
-
const fallbackSerializer = extend.serialize.bind(extend);
|
|
8
|
-
return {
|
|
9
|
-
deserialize(message) {
|
|
10
|
-
return implementation.deserialize(message, fallbackDeserializer);
|
|
11
|
-
},
|
|
12
|
-
serialize(input) {
|
|
13
|
-
return implementation.serialize(input, fallbackSerializer);
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
const DefaultErrorSerializer = {
|
|
18
|
-
deserialize(message) {
|
|
19
|
-
return Object.assign(new Error(message.message), {
|
|
20
|
-
name: message.name,
|
|
21
|
-
stack: message.stack,
|
|
22
|
-
});
|
|
23
|
-
},
|
|
24
|
-
serialize(error) {
|
|
25
|
-
return {
|
|
26
|
-
__error_marker: '$$error',
|
|
27
|
-
message: error.message,
|
|
28
|
-
name: error.name,
|
|
29
|
-
stack: error.stack,
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
const isSerializedError = (thing) => thing && typeof thing === 'object' && '__error_marker' in thing && thing.__error_marker === '$$error';
|
|
34
|
-
exports.DefaultSerializer = {
|
|
35
|
-
deserialize(message) {
|
|
36
|
-
return isSerializedError(message) ? DefaultErrorSerializer.deserialize(message) : message;
|
|
37
|
-
},
|
|
38
|
-
serialize(input) {
|
|
39
|
-
return input instanceof Error ? DefaultErrorSerializer.serialize(input) : input;
|
|
40
|
-
},
|
|
41
|
-
};
|
package/dist/symbols.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
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');
|
package/dist/transferable.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { $transferable } from './symbols';
|
|
2
|
-
export interface TransferDescriptor<T = any> {
|
|
3
|
-
[$transferable]: true;
|
|
4
|
-
send: T;
|
|
5
|
-
transferables: Transferable[];
|
|
6
|
-
}
|
|
7
|
-
export declare function isTransferDescriptor(thing: any): thing is TransferDescriptor;
|
|
8
|
-
export declare function Transfer(transferable: Transferable): TransferDescriptor;
|
|
9
|
-
export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
|
package/dist/transferable.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isTransferDescriptor = isTransferDescriptor;
|
|
4
|
-
exports.Transfer = Transfer;
|
|
5
|
-
const symbols_1 = require("./symbols");
|
|
6
|
-
function isTransferable(thing) {
|
|
7
|
-
if (!thing || typeof thing !== 'object')
|
|
8
|
-
return false;
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
function isTransferDescriptor(thing) {
|
|
12
|
-
return thing && typeof thing === 'object' && thing[symbols_1.$transferable];
|
|
13
|
-
}
|
|
14
|
-
function Transfer(payload, transferables) {
|
|
15
|
-
if (!transferables) {
|
|
16
|
-
if (!isTransferable(payload))
|
|
17
|
-
throw new Error('Not transferable');
|
|
18
|
-
transferables = [payload];
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
[symbols_1.$transferable]: true,
|
|
22
|
-
send: payload,
|
|
23
|
-
transferables,
|
|
24
|
-
};
|
|
25
|
-
}
|
package/dist/types/master.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkerEventType = void 0;
|
|
4
|
-
var WorkerEventType;
|
|
5
|
-
(function (WorkerEventType) {
|
|
6
|
-
WorkerEventType["internalError"] = "internalError";
|
|
7
|
-
WorkerEventType["message"] = "message";
|
|
8
|
-
WorkerEventType["termination"] = "termination";
|
|
9
|
-
})(WorkerEventType || (exports.WorkerEventType = WorkerEventType = {}));
|
package/dist/types/messages.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkerMessageType = exports.MasterMessageType = void 0;
|
|
4
|
-
var MasterMessageType;
|
|
5
|
-
(function (MasterMessageType) {
|
|
6
|
-
MasterMessageType["cancel"] = "cancel";
|
|
7
|
-
MasterMessageType["run"] = "run";
|
|
8
|
-
})(MasterMessageType || (exports.MasterMessageType = MasterMessageType = {}));
|
|
9
|
-
var WorkerMessageType;
|
|
10
|
-
(function (WorkerMessageType) {
|
|
11
|
-
WorkerMessageType["error"] = "error";
|
|
12
|
-
WorkerMessageType["init"] = "init";
|
|
13
|
-
WorkerMessageType["result"] = "result";
|
|
14
|
-
WorkerMessageType["running"] = "running";
|
|
15
|
-
WorkerMessageType["uncaughtError"] = "uncaughtError";
|
|
16
|
-
})(WorkerMessageType || (exports.WorkerMessageType = WorkerMessageType = {}));
|
package/dist/types/worker.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './index';
|
|
@@ -1,26 +0,0 @@
|
|
|
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);
|
|
19
|
-
if (typeof globalThis !== 'undefined') {
|
|
20
|
-
;
|
|
21
|
-
globalThis.expose = index_1.expose;
|
|
22
|
-
}
|
|
23
|
-
if (typeof globalThis !== 'undefined') {
|
|
24
|
-
;
|
|
25
|
-
globalThis.expose = index_1.expose;
|
|
26
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const isWorkerRuntime = function isWorkerRuntime() {
|
|
4
|
-
const isWindowContext = self !== undefined && typeof Window !== 'undefined' && self instanceof Window;
|
|
5
|
-
return self !== undefined && self['postMessage'] && !isWindowContext ? true : false;
|
|
6
|
-
};
|
|
7
|
-
const postMessageToMaster = function postMessageToMaster(data, transferList) {
|
|
8
|
-
self.postMessage(data, transferList);
|
|
9
|
-
};
|
|
10
|
-
const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage) {
|
|
11
|
-
const messageHandler = (messageEvent) => {
|
|
12
|
-
onMessage(messageEvent.data);
|
|
13
|
-
};
|
|
14
|
-
const unsubscribe = () => {
|
|
15
|
-
self.removeEventListener('message', messageHandler);
|
|
16
|
-
};
|
|
17
|
-
self.addEventListener('message', messageHandler);
|
|
18
|
-
return unsubscribe;
|
|
19
|
-
};
|
|
20
|
-
exports.default = {
|
|
21
|
-
isWorkerRuntime,
|
|
22
|
-
postMessageToMaster,
|
|
23
|
-
subscribeToMasterMessages,
|
|
24
|
-
};
|
|
@@ -1,19 +0,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
|
-
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"));
|
|
9
|
-
const runningInNode = typeof process !== 'undefined' && process.arch !== 'browser' && 'pid' in process;
|
|
10
|
-
function selectNodeImplementation() {
|
|
11
|
-
try {
|
|
12
|
-
implementation_worker_threads_1.default.testImplementation();
|
|
13
|
-
return implementation_worker_threads_1.default;
|
|
14
|
-
}
|
|
15
|
-
catch {
|
|
16
|
-
return implementation_tiny_worker_1.default;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.default = runningInNode ? selectNodeImplementation() : implementation_browser_1.default;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
try {
|
|
4
|
-
if (self === undefined) {
|
|
5
|
-
;
|
|
6
|
-
globalThis.self = globalThis;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
catch {
|
|
10
|
-
;
|
|
11
|
-
globalThis.self = globalThis;
|
|
12
|
-
}
|
|
13
|
-
const isWorkerRuntime = function isWorkerRuntime() {
|
|
14
|
-
return self !== undefined && self['postMessage'] ? true : false;
|
|
15
|
-
};
|
|
16
|
-
const postMessageToMaster = function postMessageToMaster(data) {
|
|
17
|
-
self.postMessage(data);
|
|
18
|
-
};
|
|
19
|
-
let muxingHandlerSetUp = false;
|
|
20
|
-
const messageHandlers = new Set();
|
|
21
|
-
const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage) {
|
|
22
|
-
if (!muxingHandlerSetUp) {
|
|
23
|
-
self.addEventListener('message', ((event) => {
|
|
24
|
-
for (const handler of messageHandlers)
|
|
25
|
-
handler(event.data);
|
|
26
|
-
}));
|
|
27
|
-
muxingHandlerSetUp = true;
|
|
28
|
-
}
|
|
29
|
-
messageHandlers.add(onMessage);
|
|
30
|
-
const unsubscribe = () => messageHandlers.delete(onMessage);
|
|
31
|
-
return unsubscribe;
|
|
32
|
-
};
|
|
33
|
-
exports.default = {
|
|
34
|
-
isWorkerRuntime,
|
|
35
|
-
postMessageToMaster,
|
|
36
|
-
subscribeToMasterMessages,
|
|
37
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
declare function testImplementation(): void;
|
|
2
|
-
declare const _default: {
|
|
3
|
-
isWorkerRuntime: () => boolean;
|
|
4
|
-
postMessageToMaster: (message: any, transferList?: Transferable[]) => void;
|
|
5
|
-
subscribeToMasterMessages: (onMessage: (data: any) => void) => () => void;
|
|
6
|
-
testImplementation: typeof testImplementation;
|
|
7
|
-
};
|
|
8
|
-
export default _default;
|
|
@@ -1,41 +0,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
|
-
const worker_threads_1 = __importDefault(require("../worker_threads"));
|
|
7
|
-
function assertMessagePort(port) {
|
|
8
|
-
if (!port) {
|
|
9
|
-
throw new Error('Invariant violation: MessagePort to parent is not available.');
|
|
10
|
-
}
|
|
11
|
-
return port;
|
|
12
|
-
}
|
|
13
|
-
const isWorkerRuntime = function isWorkerRuntime() {
|
|
14
|
-
return !(0, worker_threads_1.default)().isMainThread;
|
|
15
|
-
};
|
|
16
|
-
const postMessageToMaster = function postMessageToMaster(data, transferList) {
|
|
17
|
-
assertMessagePort((0, worker_threads_1.default)().parentPort).postMessage(data, transferList);
|
|
18
|
-
};
|
|
19
|
-
const subscribeToMasterMessages = function subscribeToMasterMessages(onMessage) {
|
|
20
|
-
const parentPort = (0, worker_threads_1.default)().parentPort;
|
|
21
|
-
if (!parentPort) {
|
|
22
|
-
throw new Error('Invariant violation: MessagePort to parent is not available.');
|
|
23
|
-
}
|
|
24
|
-
const messageHandler = (message) => {
|
|
25
|
-
onMessage(message);
|
|
26
|
-
};
|
|
27
|
-
const unsubscribe = () => {
|
|
28
|
-
assertMessagePort(parentPort).off('message', messageHandler);
|
|
29
|
-
};
|
|
30
|
-
assertMessagePort(parentPort).on('message', messageHandler);
|
|
31
|
-
return unsubscribe;
|
|
32
|
-
};
|
|
33
|
-
function testImplementation() {
|
|
34
|
-
(0, worker_threads_1.default)();
|
|
35
|
-
}
|
|
36
|
-
exports.default = {
|
|
37
|
-
isWorkerRuntime,
|
|
38
|
-
postMessageToMaster,
|
|
39
|
-
subscribeToMasterMessages,
|
|
40
|
-
testImplementation,
|
|
41
|
-
};
|
package/dist/worker/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { WorkerFunction, WorkerModule } from '../types/worker';
|
|
2
|
-
export { registerSerializer } from '../common';
|
|
3
|
-
export { Transfer } from '../transferable';
|
|
4
|
-
export declare const isWorkerRuntime: () => boolean;
|
|
5
|
-
export declare function expose(exposed: WorkerFunction | WorkerModule<any>): void;
|