@xylabs/threads 4.7.0 → 4.7.1
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/{types/common.d.ts → common.d.ts} +1 -5
- package/dist/common.js +16 -0
- package/dist/esm/common.js +16 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/master/get-bundle-url.browser.js +25 -0
- package/dist/esm/master/implementation.browser.js +65 -0
- package/dist/esm/master/implementation.js +43 -0
- package/dist/esm/master/implementation.node.js +205 -0
- package/dist/esm/master/index.js +14 -0
- package/dist/esm/master/invocation-proxy.js +121 -0
- package/dist/esm/master/pool-types.js +14 -0
- package/dist/esm/master/pool.js +262 -0
- package/dist/esm/master/register.js +11 -0
- package/dist/esm/master/spawn.js +114 -0
- package/dist/esm/master/thread.js +18 -0
- package/dist/esm/observable-promise.js +132 -0
- package/dist/esm/observable.js +33 -0
- package/dist/esm/ponyfills.js +20 -0
- package/dist/esm/promise.js +23 -0
- package/dist/esm/serializers.js +41 -0
- package/dist/esm/symbols.js +8 -0
- package/dist/esm/transferable.js +25 -0
- package/dist/esm/types/master.js +9 -0
- package/dist/esm/types/messages.js +16 -0
- package/dist/esm/types/worker.js +2 -0
- package/dist/esm/worker/bundle-entry.js +26 -0
- package/dist/esm/worker/implementation.browser.js +24 -0
- package/dist/esm/worker/implementation.js +19 -0
- package/dist/esm/worker/implementation.tiny-worker.js +37 -0
- package/dist/esm/worker/implementation.worker_threads.js +41 -0
- package/dist/esm/worker/index.js +174 -0
- package/dist/esm/worker_threads.js +13 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +26 -0
- package/dist/{types/master → master}/get-bundle-url.browser.d.ts +0 -1
- package/dist/master/get-bundle-url.browser.js +25 -0
- package/dist/{types/master → master}/implementation.browser.d.ts +1 -2
- package/dist/master/implementation.browser.js +65 -0
- package/dist/{types/master → master}/implementation.d.ts +1 -4
- package/dist/master/implementation.js +43 -0
- package/dist/{types/master → master}/implementation.node.d.ts +1 -2
- package/dist/master/implementation.node.js +205 -0
- package/dist/master/index.d.ts +10 -0
- package/dist/master/index.js +14 -0
- package/dist/{types/master → master}/invocation-proxy.d.ts +1 -2
- package/dist/master/invocation-proxy.js +121 -0
- package/dist/{types/master → master}/pool-types.d.ts +1 -16
- package/dist/master/pool-types.js +14 -0
- package/dist/master/pool.d.ts +50 -0
- package/dist/master/pool.js +262 -0
- package/dist/master/register.d.ts +1 -0
- package/dist/master/register.js +11 -0
- package/dist/{types/master → master}/spawn.d.ts +2 -12
- package/dist/master/spawn.js +114 -0
- package/dist/master/thread.d.ts +8 -0
- package/dist/master/thread.js +18 -0
- package/dist/{types/observable-promise.d.ts → observable-promise.d.ts} +0 -14
- package/dist/observable-promise.js +132 -0
- package/dist/observable.d.ts +11 -0
- package/dist/observable.js +33 -0
- package/dist/{types/ponyfills.d.ts → ponyfills.d.ts} +0 -1
- package/dist/ponyfills.js +20 -0
- package/dist/promise.d.ts +1 -0
- package/dist/promise.js +23 -0
- package/dist/{types/serializers.d.ts → serializers.d.ts} +0 -1
- package/dist/serializers.js +41 -0
- package/dist/{types/symbols.d.ts → symbols.d.ts} +0 -1
- package/dist/symbols.js +8 -0
- package/dist/transferable.d.ts +9 -0
- package/dist/transferable.js +25 -0
- package/dist/types/{types/master.d.ts → master.d.ts} +3 -17
- package/dist/types/master.js +9 -0
- package/dist/types/{types/messages.d.ts → messages.d.ts} +0 -1
- package/dist/types/messages.js +16 -0
- package/dist/types/{types/worker.d.ts → worker.d.ts} +0 -1
- package/dist/types/worker.js +2 -0
- package/dist/worker/bundle-entry.d.ts +1 -0
- package/dist/worker/bundle-entry.js +26 -0
- package/dist/worker/implementation.browser.d.ts +6 -0
- package/dist/worker/implementation.browser.js +24 -0
- package/dist/worker/implementation.d.ts +3 -0
- package/dist/worker/implementation.js +19 -0
- package/dist/worker/implementation.tiny-worker.d.ts +6 -0
- package/dist/worker/implementation.tiny-worker.js +37 -0
- package/dist/worker/implementation.worker_threads.d.ts +8 -0
- package/dist/worker/implementation.worker_threads.js +41 -0
- package/dist/worker/index.d.ts +5 -0
- package/dist/worker/index.js +174 -0
- package/dist/worker_threads.d.ts +8 -0
- package/dist/worker_threads.js +13 -0
- package/observable.d.ts +2 -0
- package/observable.js +2 -0
- package/observable.mjs +4 -0
- package/package.json +77 -66
- package/register.d.ts +2 -0
- package/register.js +2 -0
- package/register.mjs +1 -0
- package/rollup.config.js +16 -0
- package/src/common.ts +6 -10
- package/src/index.ts +9 -10
- package/src/master/get-bundle-url.browser.ts +1 -2
- package/src/master/implementation.browser.ts +2 -2
- package/src/master/implementation.node.ts +96 -19
- 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 +13 -14
- package/src/master/register.ts +1 -2
- package/src/master/spawn.ts +8 -8
- package/src/master/thread.ts +2 -2
- package/src/observable-promise.ts +2 -3
- package/src/serializers.ts +1 -1
- package/src/transferable.ts +1 -2
- package/src/types/master.ts +3 -3
- package/src/worker/bundle-entry.ts +10 -0
- package/src/worker/{worker.browser.ts → implementation.browser.ts} +10 -26
- package/src/worker/implementation.tiny-worker.ts +55 -0
- package/src/worker/implementation.ts +23 -0
- package/src/worker/{worker.node.ts → implementation.worker_threads.ts} +12 -30
- package/src/worker/index.ts +230 -0
- package/src/worker_threads.ts +27 -0
- package/test/lib/index.ts +1 -0
- package/test/lib/serialization.ts +38 -0
- package/test/observable-promise.test.ts +205 -0
- package/test/observable.test.ts +87 -0
- package/test/pool.test.ts +183 -0
- package/test/serialization.test.ts +23 -0
- package/test/spawn.chromium.mocha.ts +53 -0
- package/test/spawn.test.ts +87 -0
- package/test/streaming.test.ts +29 -0
- package/test/transferables.test.ts +71 -0
- package/test/workers/arraybuffer-xor.ts +10 -0
- package/test/workers/count-to-five.ts +12 -0
- package/test/workers/counter.ts +19 -0
- package/test/workers/faulty-function.ts +5 -0
- package/test/workers/hello-world.ts +5 -0
- package/test/workers/increment.ts +8 -0
- package/test/workers/minmax.ts +25 -0
- package/test/workers/serialization.ts +13 -0
- package/test/workers/top-level-throw.ts +1 -0
- package/test-tooling/rollup/app.js +21 -0
- package/test-tooling/rollup/rollup.config.ts +14 -0
- package/test-tooling/rollup/worker.js +7 -0
- package/test-tooling/tsconfig/minimal.ts +12 -0
- package/test-tooling/webpack/addition-worker.ts +9 -0
- package/test-tooling/webpack/app-with-inlined-worker.ts +28 -0
- package/test-tooling/webpack/app.ts +61 -0
- package/test-tooling/webpack/pool-worker.ts +5 -0
- package/test-tooling/webpack/raw-loader.d.ts +4 -0
- package/test-tooling/webpack/webpack.chromium.mocha.ts +21 -0
- package/test-tooling/webpack/webpack.node.config.js +29 -0
- package/test-tooling/webpack/webpack.web.config.js +28 -0
- package/types/is-observable.d.ts +1 -1
- package/types/webworker.d.ts +9 -0
- package/worker.d.ts +2 -0
- package/worker.js +2 -0
- package/worker.mjs +6 -0
- package/dist/browser/master/implementation.browser.mjs +0 -89
- package/dist/browser/master/implementation.browser.mjs.map +0 -1
- package/dist/browser/worker/worker.browser.mjs +0 -291
- package/dist/browser/worker/worker.browser.mjs.map +0 -1
- package/dist/neutral/index.mjs +0 -1022
- package/dist/neutral/index.mjs.map +0 -1
- package/dist/neutral/master/implementation.mjs +0 -264
- package/dist/neutral/master/implementation.mjs.map +0 -1
- package/dist/neutral/master/index.mjs +0 -988
- package/dist/neutral/master/index.mjs.map +0 -1
- package/dist/neutral/master/pool.mjs +0 -579
- package/dist/neutral/master/pool.mjs.map +0 -1
- package/dist/neutral/master/register.mjs +0 -272
- package/dist/neutral/master/register.mjs.map +0 -1
- package/dist/neutral/master/spawn.mjs +0 -412
- package/dist/neutral/master/spawn.mjs.map +0 -1
- package/dist/neutral/master/thread.mjs +0 -29
- package/dist/neutral/master/thread.mjs.map +0 -1
- package/dist/neutral/observable-promise.mjs +0 -132
- package/dist/neutral/observable-promise.mjs.map +0 -1
- package/dist/neutral/observable.mjs +0 -31
- package/dist/neutral/observable.mjs.map +0 -1
- package/dist/node/master/implementation.node.mjs +0 -154
- package/dist/node/master/implementation.node.mjs.map +0 -1
- package/dist/node/worker/worker.node.mjs +0 -304
- package/dist/node/worker/worker.node.mjs.map +0 -1
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -9
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/master/get-bundle-url.browser.d.ts.map +0 -1
- package/dist/types/master/implementation.browser.d.ts.map +0 -1
- package/dist/types/master/implementation.d.ts.map +0 -1
- package/dist/types/master/implementation.node.d.ts.map +0 -1
- package/dist/types/master/index.d.ts +0 -13
- package/dist/types/master/index.d.ts.map +0 -1
- package/dist/types/master/invocation-proxy.d.ts.map +0 -1
- package/dist/types/master/pool-types.d.ts.map +0 -1
- package/dist/types/master/pool.d.ts +0 -93
- package/dist/types/master/pool.d.ts.map +0 -1
- package/dist/types/master/register.d.ts +0 -2
- package/dist/types/master/register.d.ts.map +0 -1
- package/dist/types/master/spawn.d.ts.map +0 -1
- package/dist/types/master/thread.d.ts +0 -13
- package/dist/types/master/thread.d.ts.map +0 -1
- package/dist/types/observable-promise.d.ts.map +0 -1
- package/dist/types/observable.d.ts +0 -21
- package/dist/types/observable.d.ts.map +0 -1
- package/dist/types/ponyfills.d.ts.map +0 -1
- package/dist/types/promise.d.ts +0 -6
- package/dist/types/promise.d.ts.map +0 -1
- package/dist/types/serializers.d.ts.map +0 -1
- package/dist/types/symbols.d.ts.map +0 -1
- package/dist/types/transferable.d.ts +0 -43
- package/dist/types/transferable.d.ts.map +0 -1
- package/dist/types/types/master.d.ts.map +0 -1
- package/dist/types/types/messages.d.ts.map +0 -1
- package/dist/types/types/worker.d.ts.map +0 -1
- package/dist/types/worker/WorkerGlobalScope.d.ts +0 -6
- package/dist/types/worker/WorkerGlobalScope.d.ts.map +0 -1
- package/dist/types/worker/expose.d.ts +0 -4
- package/dist/types/worker/expose.d.ts.map +0 -1
- package/dist/types/worker/worker.browser.d.ts +0 -14
- package/dist/types/worker/worker.browser.d.ts.map +0 -1
- package/dist/types/worker/worker.node.d.ts +0 -25
- package/dist/types/worker/worker.node.d.ts.map +0 -1
- package/src/worker/WorkerGlobalScope.ts +0 -5
- package/src/worker/expose.ts +0 -234
- package/src/worker/is-observable.d.ts +0 -7
- package/xy.config.ts +0 -24
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invocation-proxy.d.ts","sourceRoot":"","sources":["../../../src/master/invocation-proxy.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,IAAI,UAAU,EACpE,MAAM,oBAAoB,CAAA;AAsG3B,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAoBxF,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CACjD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAQhI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-types.d.ts","sourceRoot":"","sources":["../../../src/master/pool-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,+DAA+D;AAC/D,oBAAY,aAAa;IACvB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAExG,yFAAyF;AACzF,MAAM,MAAM,SAAS,CAAC,UAAU,SAAS,MAAM,IAC3C;IACA,IAAI,EAAE,aAAa,CAAC,WAAW,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,GACC;IACA,IAAI,EAAE,aAAa,CAAC,gBAAgB,CAAA;CACrC,GACC;IACA,IAAI,EAAE,aAAa,CAAC,SAAS,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,aAAa,CAAA;IACjC,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACC;IACA,IAAI,EAAE,aAAa,CAAC,YAAY,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;CACf,GACC;IACA,IAAI,EAAE,aAAa,CAAC,UAAU,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;CACnD,CAAA;AAEH,MAAM,WAAW,gBAAgB,CAAC,UAAU,SAAS,MAAM;IACzD,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACzB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,MAAM,EAAE,MAAM;IAC3D,eAAe;IACf,EAAE,EAAE,MAAM,CAAA;IAEV,eAAe;IACf,GAAG,EAAE,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAExC;;OAEG;IACH,MAAM,IAAI,IAAI,CAAA;IAEd;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;CAC9B"}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'observable-fns';
|
|
2
|
-
import type { PoolEvent, QueuedTask, TaskRunFunction } from './pool-types.ts';
|
|
3
|
-
import { PoolEventType } from './pool-types.ts';
|
|
4
|
-
import { Thread } from './thread.ts';
|
|
5
|
-
export declare namespace Pool {
|
|
6
|
-
type Event<ThreadType extends Thread = any> = PoolEvent<ThreadType>;
|
|
7
|
-
type EventType = PoolEventType;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Thread pool managing a set of worker threads.
|
|
11
|
-
* Use it to queue tasks that are run on those threads with limited
|
|
12
|
-
* concurrency.
|
|
13
|
-
*/
|
|
14
|
-
export interface Pool<ThreadType extends Thread> {
|
|
15
|
-
/**
|
|
16
|
-
* Returns a promise that resolves once the task queue is emptied.
|
|
17
|
-
* Promise will be rejected if any task fails.
|
|
18
|
-
*
|
|
19
|
-
* @param allowResolvingImmediately Set to `true` to resolve immediately if task queue is currently empty.
|
|
20
|
-
*/
|
|
21
|
-
completed(allowResolvingImmediately?: boolean): Promise<any>;
|
|
22
|
-
/**
|
|
23
|
-
* Returns a promise that resolves once the task queue is emptied.
|
|
24
|
-
* Failing tasks will not cause the promise to be rejected.
|
|
25
|
-
*
|
|
26
|
-
* @param allowResolvingImmediately Set to `true` to resolve immediately if task queue is currently empty.
|
|
27
|
-
*/
|
|
28
|
-
settled(allowResolvingImmediately?: boolean): Promise<Error[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Returns an observable that yields pool events.
|
|
31
|
-
*/
|
|
32
|
-
events(): Observable<PoolEvent<ThreadType>>;
|
|
33
|
-
/**
|
|
34
|
-
* Queue a task and return a promise that resolves once the task has been dequeued,
|
|
35
|
-
* started and finished.
|
|
36
|
-
*
|
|
37
|
-
* @param task An async function that takes a thread instance and invokes it.
|
|
38
|
-
*/
|
|
39
|
-
queue<Return>(task: TaskRunFunction<ThreadType, Return>): QueuedTask<ThreadType, Return>;
|
|
40
|
-
/**
|
|
41
|
-
* Terminate all pool threads.
|
|
42
|
-
*
|
|
43
|
-
* @param force Set to `true` to kill the thread even if it cannot be stopped gracefully.
|
|
44
|
-
*/
|
|
45
|
-
terminate(force?: boolean): Promise<void>;
|
|
46
|
-
}
|
|
47
|
-
interface PoolOptions {
|
|
48
|
-
/** Maximum no. of tasks to run on one worker thread at a time. Defaults to one. */
|
|
49
|
-
concurrency?: number;
|
|
50
|
-
/** Maximum no. of jobs to be queued for execution before throwing an error. */
|
|
51
|
-
maxQueuedJobs?: number;
|
|
52
|
-
/** Gives that pool a name to be used for debug logging, letting you distinguish between log output of different pools. */
|
|
53
|
-
name?: string;
|
|
54
|
-
/** No. of worker threads to spawn and to be managed by the pool. */
|
|
55
|
-
size?: number;
|
|
56
|
-
}
|
|
57
|
-
declare class WorkerPool<ThreadType extends Thread> implements Pool<ThreadType> {
|
|
58
|
-
static EventType: typeof PoolEventType;
|
|
59
|
-
private readonly debug;
|
|
60
|
-
private readonly eventObservable;
|
|
61
|
-
private readonly options;
|
|
62
|
-
private readonly workers;
|
|
63
|
-
private readonly eventSubject;
|
|
64
|
-
private initErrors;
|
|
65
|
-
private isClosing;
|
|
66
|
-
private nextTaskID;
|
|
67
|
-
private taskQueue;
|
|
68
|
-
constructor(spawnWorker: () => Promise<ThreadType>, optionsOrSize?: number | PoolOptions);
|
|
69
|
-
private findIdlingWorker;
|
|
70
|
-
private runPoolTask;
|
|
71
|
-
private run;
|
|
72
|
-
private scheduleWork;
|
|
73
|
-
private taskCompletion;
|
|
74
|
-
settled(allowResolvingImmediately?: boolean): Promise<Error[]>;
|
|
75
|
-
completed(allowResolvingImmediately?: boolean): Promise<void>;
|
|
76
|
-
events(): Observable<PoolEvent<ThreadType>>;
|
|
77
|
-
queue(taskFunction: TaskRunFunction<ThreadType, any>): QueuedTask<ThreadType, any>;
|
|
78
|
-
terminate(force?: boolean): Promise<void>;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Thread pool constructor. Creates a new pool and spawns its worker threads.
|
|
82
|
-
*/
|
|
83
|
-
declare function PoolConstructor<ThreadType extends Thread>(spawnWorker: () => Promise<ThreadType>, optionsOrSize?: number | PoolOptions): WorkerPool<ThreadType>;
|
|
84
|
-
/**
|
|
85
|
-
* Thread pool constructor. Creates a new pool and spawns its worker threads.
|
|
86
|
-
*/
|
|
87
|
-
export declare const Pool: typeof PoolConstructor & {
|
|
88
|
-
EventType: typeof PoolEventType;
|
|
89
|
-
};
|
|
90
|
-
export type { PoolEvent, QueuedTask } from './pool-types.ts';
|
|
91
|
-
export { PoolEventType } from './pool-types.ts';
|
|
92
|
-
export { Thread } from './thread.ts';
|
|
93
|
-
//# sourceMappingURL=pool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../../src/master/pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/master/register.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../../src/master/spawn.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,UAAU,EACV,MAAM,IAAI,UAAU,EAKrB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtE,KAAK,wBAAwB,GAAG,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG;IAAE,yCAAyC,EAAE,gBAAgB,CAAA;CAAE,CAAA;AACvI,KAAK,mBAAmB,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;AAEvE,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,IAChF,OAAO,SAAS,wBAAwB,GAAG,mBAAmB,GAC1D,OAAO,SAAS,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GACnG,OAAO,SAAS,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GACvD,KAAK,CAAA;AAqGf;;;;;;;;GAQG;AACH,wBAAsB,KAAK,CAAC,OAAO,SAAS,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,wBAAwB,EACvG,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAwBvC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Observable } from 'observable-fns';
|
|
2
|
-
import type { Thread as ThreadType, WorkerEvent } from '../types/master.ts';
|
|
3
|
-
export type Thread = ThreadType;
|
|
4
|
-
/** Thread utility functions. Use them to manage or inspect a `spawn()`-ed thread. */
|
|
5
|
-
export declare const Thread: {
|
|
6
|
-
/** Return an observable that can be used to subscribe to all errors happening in the thread. */
|
|
7
|
-
errors<ThreadT extends ThreadType>(thread: ThreadT): Observable<Error>;
|
|
8
|
-
/** Return an observable that can be used to subscribe to internal events happening in the thread. Useful for debugging. */
|
|
9
|
-
events<ThreadT extends ThreadType>(thread: ThreadT): Observable<WorkerEvent>;
|
|
10
|
-
/** Terminate a thread. Remember to terminate every thread when you are done using it. */
|
|
11
|
-
terminate<ThreadT extends ThreadType>(thread: ThreadT): Promise<void>;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=thread.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../../src/master/thread.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAKhD,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAM3E,MAAM,MAAM,MAAM,GAAG,UAAU,CAAA;AAE/B,qFAAqF;AACrF,eAAO,MAAM,MAAM;IACjB,gGAAgG;WACzF,OAAO,SAAS,UAAU,UAAU,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;IAGtE,2HAA2H;WACpH,OAAO,SAAS,UAAU,UAAU,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAG5E,yFAAyF;cAC/E,OAAO,SAAS,UAAU,UAAU,OAAO;CAGtD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observable-promise.d.ts","sourceRoot":"","sources":["../../src/observable-promise.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAK3C,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,IAAI,CAAA;AAEjF,KAAK,QAAQ,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,CAAA;CAAE,CAAA;AAEvG,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAc/B;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,gCAA+B;IAC5D,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,kBAAkB,CAAmB;IAE7C,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,KAAK,CAAkD;gBAEnD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IA6BhC,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,YAAY;IAUpB,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EACjC,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EACpF,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GACrF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAuC/B,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GACpD,OAAO,CAAC,MAAM,CAAC;IAG5D,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,GAQ9C,OAAO,CAAC,CAAC,CAAC;WAGD,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAcrH"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ObservableLike } from 'observable-fns';
|
|
2
|
-
import { Observable } from 'observable-fns';
|
|
3
|
-
declare const $observers: unique symbol;
|
|
4
|
-
/**
|
|
5
|
-
* Observable subject. Implements the Observable interface, but also exposes
|
|
6
|
-
* the `next()`, `error()`, `complete()` methods to initiate observable
|
|
7
|
-
* updates "from the outside".
|
|
8
|
-
*
|
|
9
|
-
* Use `Observable.from(subject)` to derive an observable that proxies all
|
|
10
|
-
* values, errors and the completion raised on this subject, but does not
|
|
11
|
-
* expose the `next()`, `error()`, `complete()` methods.
|
|
12
|
-
*/
|
|
13
|
-
export declare class Subject<T> extends Observable<T> implements ObservableLike<T> {
|
|
14
|
-
private [$observers];
|
|
15
|
-
constructor();
|
|
16
|
-
complete(): void;
|
|
17
|
-
error(error: any): void;
|
|
18
|
-
next(value: T): void;
|
|
19
|
-
}
|
|
20
|
-
export { Observable } from 'observable-fns';
|
|
21
|
-
//# sourceMappingURL=observable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/observable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAwB,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,QAAA,MAAM,UAAU,eAAsB,CAAA;AAEtC;;;;;;;;GAQG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAgC;;IAcpD,QAAQ;IAIR,KAAK,CAAC,KAAK,EAAE,GAAG;IAIhB,IAAI,CAAC,KAAK,EAAE,CAAC;CAGd;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ponyfills.d.ts","sourceRoot":"","sources":["../../src/ponyfills.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAC1B;IACA,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,GACC;IACA,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAGH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAkB9E"}
|
package/dist/types/promise.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../src/promise.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC,CAkBhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../../src/serializers.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC7D,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAAA;IAChC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAA;CAC7B;AAED,MAAM,WAAW,wBAAwB,CAAC,GAAG,GAAG,gBAAgB,EAAE,KAAK,GAAG,GAAG;IAC3E,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,KAAK,GAAG,KAAK,CAAA;IACzE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG,CAAA;CACpE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS,GAAG,GAAG,EAC3D,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,GAC/D,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAapC;AAED,KAAK,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAEjE,KAAK,sBAAsB,GAAG;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,GAAG,SAAS,CAAA;CACvI,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,sBAAsB,GAAG,sBAAsB,EAAE,CAAA;AAsB1I,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,gBAAgB,CAO1D,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,eAAO,MAAM,OAAO,eAA0B,CAAA;AAC9C,eAAO,MAAM,UAAU,eAA6B,CAAA;AACpD,eAAO,MAAM,aAAa,eAAgC,CAAA;AAC1D,eAAO,MAAM,OAAO,eAA0B,CAAA"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { $transferable } from './symbols.ts';
|
|
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
|
-
/**
|
|
9
|
-
* Mark a transferable object as such, so it will no be serialized and
|
|
10
|
-
* deserialized on messaging with the main thread, but to transfer
|
|
11
|
-
* ownership of it to the receiving thread.
|
|
12
|
-
*
|
|
13
|
-
* Only works with array buffers, message ports and few more special
|
|
14
|
-
* types of objects, but it's much faster than serializing and
|
|
15
|
-
* deserializing them.
|
|
16
|
-
*
|
|
17
|
-
* Note:
|
|
18
|
-
* The transferable object cannot be accessed by this thread again
|
|
19
|
-
* unless the receiving thread transfers it back again!
|
|
20
|
-
*
|
|
21
|
-
* @param transferable Array buffer, message port or similar.
|
|
22
|
-
* @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
|
|
23
|
-
*/
|
|
24
|
-
export declare function Transfer(transferable: Transferable): TransferDescriptor;
|
|
25
|
-
/**
|
|
26
|
-
* Mark transferable objects within an arbitrary object or array as
|
|
27
|
-
* being a transferable object. They will then not be serialized
|
|
28
|
-
* and deserialized on messaging with the main thread, but ownership
|
|
29
|
-
* of them will be tranferred to the receiving thread.
|
|
30
|
-
*
|
|
31
|
-
* Only array buffers, message ports and few more special types of
|
|
32
|
-
* objects can be transferred, but it's much faster than serializing and
|
|
33
|
-
* deserializing them.
|
|
34
|
-
*
|
|
35
|
-
* Note:
|
|
36
|
-
* The transferable object cannot be accessed by this thread again
|
|
37
|
-
* unless the receiving thread transfers it back again!
|
|
38
|
-
*
|
|
39
|
-
* @param transferable Array buffer, message port or similar.
|
|
40
|
-
* @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
|
|
41
|
-
*/
|
|
42
|
-
export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
|
|
43
|
-
//# sourceMappingURL=transferable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IACrB,IAAI,EAAE,CAAC,CAAA;IACP,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAQD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAA;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EACtC,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,UAAU,0BAA0B;IAClC,WAAW,IAAI,GAAG,CAAA;CACnB;AACD,UAAU,cAAc,CAAC,CAAC;IACxB,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,0BAA0B,CAAA;IACvH,SAAS,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;QAAC,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,CAAA;KAAE,GAAG,0BAA0B,CAAA;CACtH;AAED,MAAM,MAAM,UAAU,CAAC,IAAI,IACzB,IAAI,SAAS,OAAO,CAAC,MAAM,eAAe,CAAC,GAAG,eAAe,GACzD,IAAI,SAAS,cAAc,CAAC,MAAM,kBAAkB,CAAC,GAAG,kBAAkB,GACxE,IAAI,CAAA;AAEZ,KAAK,aAAa,CAAC,IAAI,IAAI,IAAI,SAAS,kBAAkB,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAA;AAE5F,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAA;CAAE,CAAA;AAE3E,KAAK,aAAa,CAAC,IAAI,SAAS,GAAG,EAAE,IACnC,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,GAAG,IAAI,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,YAAY,GAAG,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;AAErJ,MAAM,MAAM,iBAAiB,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,UAAU,IAC1D,IAAI,SAAS,EAAE,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAC5E,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAEhG,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,aAAa,IAAI;KACtD,MAAM,IAAI,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;CACvG,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,kBAAkB,CAAA;AACnI,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,aAAa,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAA;AAIzG,UAAU,iBAAkB,SAAQ,kBAAkB;IACpD,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;CACzC;AAGD,UAAU,eAAgB,SAAQ,kBAAkB;CAEnD;AAED,oEAAoE;AACpE,MAAM,MAAM,MAAM,GAAG,iBAAiB,GAAG,eAAe,CAAA;AAExD,MAAM,MAAM,YAAY,GAAG,YAAY,EAAE,CAAA;AAEzC,8GAA8G;AAC9G,MAAM,WAAW,MAAO,SAAQ,WAAW;IACzC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1D,qGAAqG;IACrG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACzF;AACD,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,cAAc,CAAC,EAAE;QACf,wEAAwE;QACxE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,+CAA+C;QAC/C,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,qEAAqE;QACrE,wBAAwB,CAAC,EAAE,MAAM,CAAA;KAClC,CAAA;IACD,gDAAgD;IAChD,UAAU,CAAC,EAAE,GAAG,CAAA;CACjB;AAED,0EAA0E;AAC1E,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,WAAY,YAAW,MAAM;gBACjE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB;IACxD,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;IAC1D,SAAS,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CACpC;AAED,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,oBAAoB;gBAC9C,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,oBAAoB;IACtD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,oBAAoB;CACtF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,UAAU,CAAA;IACvB,OAAO,EAAE,OAAO,oBAAoB,CAAA;CACrC;AAED,qFAAqF;AACrF,oBAAY,eAAe;IACzB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,eAAe,CAAC,aAAa,CAAA;CACpC;AAED,MAAM,WAAW,kBAAkB,CAAC,IAAI;IACtC,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,eAAe,CAAC,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,eAAe,CAAC,WAAW,CAAA;CAClC;AAED,MAAM,MAAM,WAAW,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,SAAS,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAKD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAA;IACrC,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAA;IAC5B,OAAO,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,GAAG,SAAS,CAAA;CACrC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AACA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,MAAM,WAAW,mBAAmB;IAClC,eAAe,IAAI,OAAO,CAAA;IAC1B,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACtE,yBAAyB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAA;CACzE;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI;KAC7C,GAAG,IAAI,IAAI,GAAG,cAAc;CAC9B,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface WorkerGlobalScope {
|
|
2
|
-
addEventListener(eventName: string, listener: (event: Event) => void): void;
|
|
3
|
-
postMessage(message: unknown, transferList?: Readonly<Transferable[]>): void;
|
|
4
|
-
removeEventListener(eventName: string, listener: (event: Event) => void): void;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=WorkerGlobalScope.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAA;IAC5E,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { AbstractedWorkerAPI, WorkerFunction, WorkerModule } from '../types/worker.ts';
|
|
2
|
-
import type { WorkerGlobalScope } from './WorkerGlobalScope.ts';
|
|
3
|
-
export declare function createExpose(implementation: AbstractedWorkerAPI, self: WorkerGlobalScope): (exposed: WorkerFunction | WorkerModule<any>) => void;
|
|
4
|
-
//# sourceMappingURL=expose.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expose.d.ts","sourceRoot":"","sources":["../../../src/worker/expose.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,mBAAmB,EAAE,cAAc,EAAE,YAAY,EAClD,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAI/D,wBAAgB,YAAY,CAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,aAoI9D,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,UAsE5D"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { AbstractedWorkerAPI } from '../types/worker.ts';
|
|
2
|
-
declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
|
|
3
|
-
declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
|
|
4
|
-
declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
|
|
5
|
-
declare const addEventListener: (eventName: string, listener: (event: Event) => void) => void;
|
|
6
|
-
declare const postMessage: (message: unknown, transferList?: Readonly<Transferable[]>) => void;
|
|
7
|
-
declare const removeEventListener: (eventName: string, listener: (event: Event) => void) => void;
|
|
8
|
-
export { addEventListener, postMessage, removeEventListener, };
|
|
9
|
-
declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
|
|
10
|
-
export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
|
|
11
|
-
export { registerSerializer } from '../common.ts';
|
|
12
|
-
export { Transfer } from '../transferable.ts';
|
|
13
|
-
export { expose };
|
|
14
|
-
//# sourceMappingURL=worker.browser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.browser.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.browser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAM7D,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAG3D,CAAA;AAED,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAS/E,CAAA;AAED,QAAA,MAAM,gBAAgB,+DAAwB,CAAA;AAC9C,QAAA,MAAM,WAAW,qEAAmB,CAAA;AACpC,QAAA,MAAM,mBAAmB,+DAA2B,CAAA;AAEpD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { MessagePort, TransferListItem } from 'node:worker_threads';
|
|
2
|
-
import type { AbstractedWorkerAPI } from '../types/worker.ts';
|
|
3
|
-
declare const isWorkerRuntime: AbstractedWorkerAPI['isWorkerRuntime'];
|
|
4
|
-
declare const postMessageToMaster: AbstractedWorkerAPI['postMessageToMaster'];
|
|
5
|
-
declare const subscribeToMasterMessages: AbstractedWorkerAPI['subscribeToMasterMessages'];
|
|
6
|
-
declare const addEventListener: {
|
|
7
|
-
(event: "close", listener: () => void): MessagePort;
|
|
8
|
-
(event: "message", listener: (value: any) => void): MessagePort;
|
|
9
|
-
(event: "messageerror", listener: (error: Error) => void): MessagePort;
|
|
10
|
-
(event: string | symbol, listener: (...args: any[]) => void): MessagePort;
|
|
11
|
-
};
|
|
12
|
-
declare const postMessage: (value: any, transferList?: readonly TransferListItem[]) => void;
|
|
13
|
-
declare const removeEventListener: {
|
|
14
|
-
(event: "close", listener: () => void): MessagePort;
|
|
15
|
-
(event: "message", listener: (value: any) => void): MessagePort;
|
|
16
|
-
(event: "messageerror", listener: (error: Error) => void): MessagePort;
|
|
17
|
-
(event: string | symbol, listener: (...args: any[]) => void): MessagePort;
|
|
18
|
-
};
|
|
19
|
-
export { addEventListener, postMessage, removeEventListener, };
|
|
20
|
-
declare const expose: (exposed: import("../types/worker.ts").WorkerFunction | import("../types/worker.ts").WorkerModule<any>) => void;
|
|
21
|
-
export { isWorkerRuntime, postMessageToMaster, subscribeToMasterMessages, };
|
|
22
|
-
export { registerSerializer } from '../common.ts';
|
|
23
|
-
export { Transfer } from '../transferable.ts';
|
|
24
|
-
export { expose };
|
|
25
|
-
//# sourceMappingURL=worker.node.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker.node.d.ts","sourceRoot":"","sources":["../../../src/worker/worker.node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAKxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAY7D,QAAA,MAAM,eAAe,EAAE,mBAAmB,CAAC,iBAAiB,CAE3D,CAAA;AAED,QAAA,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,qBAAqB,CAEnE,CAAA;AAED,QAAA,MAAM,yBAAyB,EAAE,mBAAmB,CAAC,2BAA2B,CAY/E,CAAA;AAED,QAAA,MAAM,gBAAgB;;;;wCAyB0gR,GAAG;CAzB3+Q,CAAA;AACxD,QAAA,MAAM,WAAW,kEAA2C,CAAA;AAC5D,QAAA,MAAM,mBAAmB;;;;wCAuBoiU,GAAG;CAvBpgU,CAAA;AAE5D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,mBAAmB,GACpB,CAAA;AAED,QAAA,MAAM,MAAM,iHAIV,CAAA;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,yBAAyB,GAC1B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export interface WorkerGlobalScope {
|
|
2
|
-
addEventListener(eventName: string, listener: (event: Event) => void): void
|
|
3
|
-
postMessage(message: unknown, transferList?: Readonly<Transferable[]>): void
|
|
4
|
-
removeEventListener(eventName: string, listener: (event: Event) => void): void
|
|
5
|
-
}
|
package/src/worker/expose.ts
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import-x/no-internal-modules */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-floating-promises */
|
|
4
|
-
|
|
5
|
-
import isSomeObservable from 'is-observable-2-1-0'
|
|
6
|
-
import type { Observable, Subscription } from 'observable-fns'
|
|
7
|
-
|
|
8
|
-
import { deserialize, serialize } from '../common.ts'
|
|
9
|
-
import type { TransferDescriptor } from '../transferable.ts'
|
|
10
|
-
import { isTransferDescriptor } from '../transferable.ts'
|
|
11
|
-
import type {
|
|
12
|
-
MasterJobCancelMessage,
|
|
13
|
-
MasterJobRunMessage,
|
|
14
|
-
SerializedError,
|
|
15
|
-
WorkerInitMessage,
|
|
16
|
-
WorkerJobErrorMessage,
|
|
17
|
-
WorkerJobResultMessage,
|
|
18
|
-
WorkerJobStartMessage,
|
|
19
|
-
WorkerUncaughtErrorMessage,
|
|
20
|
-
} from '../types/messages.ts'
|
|
21
|
-
import {
|
|
22
|
-
MasterMessageType,
|
|
23
|
-
WorkerMessageType,
|
|
24
|
-
} from '../types/messages.ts'
|
|
25
|
-
import type {
|
|
26
|
-
AbstractedWorkerAPI, WorkerFunction, WorkerModule,
|
|
27
|
-
} from '../types/worker.ts'
|
|
28
|
-
import type { WorkerGlobalScope } from './WorkerGlobalScope.ts'
|
|
29
|
-
|
|
30
|
-
const isErrorEvent = (value: Event): value is ErrorEvent => value && (value as ErrorEvent).error
|
|
31
|
-
|
|
32
|
-
export function createExpose(implementation: AbstractedWorkerAPI, self: WorkerGlobalScope) {
|
|
33
|
-
let exposeCalled = false
|
|
34
|
-
|
|
35
|
-
const activeSubscriptions = new Map<number, Subscription<any>>()
|
|
36
|
-
|
|
37
|
-
const isMasterJobCancelMessage = (thing: any): thing is MasterJobCancelMessage => thing && thing.type === MasterMessageType.cancel
|
|
38
|
-
const isMasterJobRunMessage = (thing: any): thing is MasterJobRunMessage => thing && thing.type === MasterMessageType.run
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* There are issues with `is-observable` not recognizing zen-observable's instances.
|
|
42
|
-
* We are using `observable-fns`, but it's based on zen-observable, too.
|
|
43
|
-
*/
|
|
44
|
-
const isObservable = (thing: any): thing is Observable<any> => isSomeObservable(thing) || isZenObservable(thing)
|
|
45
|
-
|
|
46
|
-
function isZenObservable(thing: any): thing is Observable<any> {
|
|
47
|
-
return thing && typeof thing === 'object' && typeof thing.subscribe === 'function'
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function deconstructTransfer(thing: any) {
|
|
51
|
-
return isTransferDescriptor(thing) ? { payload: thing.send, transferables: thing.transferables } : { payload: thing, transferables: undefined }
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function postFunctionInitMessage() {
|
|
55
|
-
const initMessage: WorkerInitMessage = {
|
|
56
|
-
exposed: { type: 'function' },
|
|
57
|
-
type: WorkerMessageType.init,
|
|
58
|
-
}
|
|
59
|
-
implementation.postMessageToMaster(initMessage)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function postModuleInitMessage(methodNames: string[]) {
|
|
63
|
-
const initMessage: WorkerInitMessage = {
|
|
64
|
-
exposed: {
|
|
65
|
-
methods: methodNames,
|
|
66
|
-
type: 'module',
|
|
67
|
-
},
|
|
68
|
-
type: WorkerMessageType.init,
|
|
69
|
-
}
|
|
70
|
-
implementation.postMessageToMaster(initMessage)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function postJobErrorMessage(uid: number, rawError: Error | TransferDescriptor<Error>) {
|
|
74
|
-
const { payload: error, transferables } = deconstructTransfer(rawError)
|
|
75
|
-
const errorMessage: WorkerJobErrorMessage = {
|
|
76
|
-
error: serialize(error) as any as SerializedError,
|
|
77
|
-
type: WorkerMessageType.error,
|
|
78
|
-
uid,
|
|
79
|
-
}
|
|
80
|
-
implementation.postMessageToMaster(errorMessage, transferables)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function postJobResultMessage(uid: number, completed: boolean, resultValue?: any) {
|
|
84
|
-
const { payload, transferables } = deconstructTransfer(resultValue)
|
|
85
|
-
const resultMessage: WorkerJobResultMessage = {
|
|
86
|
-
complete: completed ? true : undefined,
|
|
87
|
-
payload,
|
|
88
|
-
type: WorkerMessageType.result,
|
|
89
|
-
uid,
|
|
90
|
-
}
|
|
91
|
-
implementation.postMessageToMaster(resultMessage, transferables)
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function postJobStartMessage(uid: number, resultType: WorkerJobStartMessage['resultType']) {
|
|
95
|
-
const startMessage: WorkerJobStartMessage = {
|
|
96
|
-
resultType,
|
|
97
|
-
type: WorkerMessageType.running,
|
|
98
|
-
uid,
|
|
99
|
-
}
|
|
100
|
-
implementation.postMessageToMaster(startMessage)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function postUncaughtErrorMessage(error: Error) {
|
|
104
|
-
try {
|
|
105
|
-
const errorMessage: WorkerUncaughtErrorMessage = {
|
|
106
|
-
error: serialize(error) as any as SerializedError,
|
|
107
|
-
type: WorkerMessageType.uncaughtError,
|
|
108
|
-
}
|
|
109
|
-
implementation.postMessageToMaster(errorMessage)
|
|
110
|
-
} catch (subError) {
|
|
111
|
-
// tslint:disable-next-line no-console
|
|
112
|
-
console.error(
|
|
113
|
-
'Not reporting uncaught error back to master thread as it ' + 'occured while reporting an uncaught error already.' + '\nLatest error:',
|
|
114
|
-
subError,
|
|
115
|
-
'\nOriginal error:',
|
|
116
|
-
error,
|
|
117
|
-
)
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
async function runFunction(jobUID: number, fn: WorkerFunction, args: any[]) {
|
|
122
|
-
let syncResult: any
|
|
123
|
-
|
|
124
|
-
try {
|
|
125
|
-
syncResult = fn(...args)
|
|
126
|
-
} catch (ex) {
|
|
127
|
-
const error = ex as Error
|
|
128
|
-
return postJobErrorMessage(jobUID, error)
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const resultType = isObservable(syncResult) ? 'observable' : 'promise'
|
|
132
|
-
postJobStartMessage(jobUID, resultType)
|
|
133
|
-
|
|
134
|
-
if (isObservable(syncResult)) {
|
|
135
|
-
const subscription = syncResult.subscribe(
|
|
136
|
-
value => postJobResultMessage(jobUID, false, serialize(value)),
|
|
137
|
-
(error) => {
|
|
138
|
-
postJobErrorMessage(jobUID, serialize(error) as any)
|
|
139
|
-
activeSubscriptions.delete(jobUID)
|
|
140
|
-
},
|
|
141
|
-
() => {
|
|
142
|
-
postJobResultMessage(jobUID, true)
|
|
143
|
-
activeSubscriptions.delete(jobUID)
|
|
144
|
-
},
|
|
145
|
-
)
|
|
146
|
-
activeSubscriptions.set(jobUID, subscription)
|
|
147
|
-
} else {
|
|
148
|
-
try {
|
|
149
|
-
const result = await syncResult
|
|
150
|
-
postJobResultMessage(jobUID, true, serialize(result))
|
|
151
|
-
} catch (error) {
|
|
152
|
-
postJobErrorMessage(jobUID, serialize(error) as any)
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Expose a function or a module (an object whose values are functions)
|
|
159
|
-
* to the main thread. Must be called exactly once in every worker thread
|
|
160
|
-
* to signal its API to the main thread.
|
|
161
|
-
*
|
|
162
|
-
* @param exposed Function or object whose values are functions
|
|
163
|
-
*/
|
|
164
|
-
const expose = (exposed: WorkerFunction | WorkerModule<any>) => {
|
|
165
|
-
if (!implementation.isWorkerRuntime()) {
|
|
166
|
-
throw new Error('expose() called in the master thread.')
|
|
167
|
-
}
|
|
168
|
-
if (exposeCalled) {
|
|
169
|
-
throw new Error('expose() called more than once. This is not possible. Pass an object to expose() if you want to expose multiple functions.')
|
|
170
|
-
}
|
|
171
|
-
exposeCalled = true
|
|
172
|
-
|
|
173
|
-
if (typeof exposed === 'function') {
|
|
174
|
-
implementation.subscribeToMasterMessages((messageData: unknown) => {
|
|
175
|
-
if (isMasterJobRunMessage(messageData) && !messageData.method) {
|
|
176
|
-
runFunction(messageData.uid, exposed, messageData.args.map(deserialize))
|
|
177
|
-
}
|
|
178
|
-
})
|
|
179
|
-
postFunctionInitMessage()
|
|
180
|
-
} else if (typeof exposed === 'object' && exposed) {
|
|
181
|
-
implementation.subscribeToMasterMessages((messageData: unknown) => {
|
|
182
|
-
if (isMasterJobRunMessage(messageData) && messageData.method) {
|
|
183
|
-
runFunction(messageData.uid, exposed[messageData.method], messageData.args.map(deserialize))
|
|
184
|
-
}
|
|
185
|
-
})
|
|
186
|
-
|
|
187
|
-
const methodNames = Object.keys(exposed).filter(key => typeof exposed[key] === 'function')
|
|
188
|
-
postModuleInitMessage(methodNames)
|
|
189
|
-
} else {
|
|
190
|
-
throw new Error(`Invalid argument passed to expose(). Expected a function or an object, got: ${exposed}`)
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
implementation.subscribeToMasterMessages((messageData: unknown) => {
|
|
194
|
-
if (isMasterJobCancelMessage(messageData)) {
|
|
195
|
-
const jobUID = messageData.uid
|
|
196
|
-
const subscription = activeSubscriptions.get(jobUID)
|
|
197
|
-
|
|
198
|
-
if (subscription) {
|
|
199
|
-
subscription.unsubscribe()
|
|
200
|
-
activeSubscriptions.delete(jobUID)
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
})
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
if (typeof globalThis !== 'undefined' && typeof self.addEventListener === 'function' && implementation.isWorkerRuntime()) {
|
|
207
|
-
self.addEventListener('error', (event) => {
|
|
208
|
-
// Post with some delay, so the master had some time to subscribe to messages
|
|
209
|
-
setTimeout(() => postUncaughtErrorMessage(isErrorEvent(event) ? event.error : event), 250)
|
|
210
|
-
})
|
|
211
|
-
self.addEventListener('unhandledrejection', (event) => {
|
|
212
|
-
const error = (event as any).reason
|
|
213
|
-
if (error && typeof (error as any).message === 'string') {
|
|
214
|
-
// Post with some delay, so the master had some time to subscribe to messages
|
|
215
|
-
setTimeout(() => postUncaughtErrorMessage(error), 250)
|
|
216
|
-
}
|
|
217
|
-
})
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
if (typeof process !== 'undefined' && typeof process.on === 'function' && implementation.isWorkerRuntime()) {
|
|
221
|
-
process.on('uncaughtException', (error) => {
|
|
222
|
-
// Post with some delay, so the master had some time to subscribe to messages
|
|
223
|
-
setTimeout(() => postUncaughtErrorMessage(error), 250)
|
|
224
|
-
})
|
|
225
|
-
process.on('unhandledRejection', (error) => {
|
|
226
|
-
if (error && typeof (error as any).message === 'string') {
|
|
227
|
-
// Post with some delay, so the master had some time to subscribe to messages
|
|
228
|
-
setTimeout(() => postUncaughtErrorMessage(error as any), 250)
|
|
229
|
-
}
|
|
230
|
-
})
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
return expose
|
|
234
|
-
}
|
package/xy.config.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
|
|
2
|
-
const config: XyTsupConfig = {
|
|
3
|
-
compile: {
|
|
4
|
-
browser: { src: { entry: ['./src/master/implementation.browser.ts', './src/worker/worker.browser.ts'] } },
|
|
5
|
-
neutral: {
|
|
6
|
-
src: {
|
|
7
|
-
entry: [
|
|
8
|
-
'./src/index.ts',
|
|
9
|
-
'./src/master/index.ts',
|
|
10
|
-
'./src/master/pool.ts',
|
|
11
|
-
'./src/observable.ts',
|
|
12
|
-
'./src/observable-promise.ts',
|
|
13
|
-
'./src/master/implementation.ts',
|
|
14
|
-
'./src/master/register.ts',
|
|
15
|
-
'./src/master/spawn.ts',
|
|
16
|
-
'./src/master/thread.ts',
|
|
17
|
-
],
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
node: { src: { entry: ['./src/master/implementation.node.ts', './src/worker/worker.node.ts'] } },
|
|
21
|
-
},
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export default config
|