@ariestools/threads 8.1.1 → 8.1.3
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/index-browser.mjs +9 -0
- package/dist/browser/index-browser.mjs.map +2 -2
- package/dist/browser/isObservable.d.ts +1 -0
- package/dist/browser/isObservable.d.ts.map +1 -1
- package/dist/browser/master/implementation.node.d.ts +28 -0
- package/dist/browser/master/implementation.node.d.ts.map +1 -1
- package/dist/browser/master/index-browser.d.ts +2 -0
- package/dist/browser/master/index-browser.d.ts.map +1 -1
- package/dist/browser/master/index-browser.mjs +9 -0
- package/dist/browser/master/index-browser.mjs.map +2 -2
- package/dist/browser/master/index-node.d.ts +4 -1
- package/dist/browser/master/index-node.d.ts.map +1 -1
- package/dist/browser/master/pool-browser.d.ts +1 -0
- package/dist/browser/master/pool-browser.d.ts.map +1 -1
- package/dist/browser/master/pool-browser.mjs.map +2 -2
- package/dist/browser/master/pool-node.d.ts +1 -0
- package/dist/browser/master/pool-node.d.ts.map +1 -1
- package/dist/browser/master/pool-types.d.ts +10 -0
- package/dist/browser/master/pool-types.d.ts.map +1 -1
- package/dist/browser/observable-promise.d.ts +9 -0
- package/dist/browser/observable-promise.d.ts.map +1 -1
- package/dist/browser/observable.d.ts +1 -0
- package/dist/browser/observable.d.ts.map +1 -1
- package/dist/browser/serializers.d.ts +4 -0
- package/dist/browser/serializers.d.ts.map +1 -1
- package/dist/browser/transferable.d.ts +5 -2
- package/dist/browser/transferable.d.ts.map +1 -1
- package/dist/browser/types/master.d.ts +20 -0
- package/dist/browser/types/master.d.ts.map +1 -1
- package/dist/browser/types/messages.d.ts +31 -0
- package/dist/browser/types/messages.d.ts.map +1 -1
- package/dist/browser/types/worker.d.ts +3 -0
- package/dist/browser/types/worker.d.ts.map +1 -1
- package/dist/browser/worker/WorkerGlobalScope.d.ts +3 -0
- package/dist/browser/worker/WorkerGlobalScope.d.ts.map +1 -1
- package/dist/browser/worker/worker.browser.mjs.map +2 -2
- package/dist/neutral/isObservable.d.ts +1 -0
- package/dist/neutral/isObservable.d.ts.map +1 -1
- package/dist/neutral/master/implementation.node.d.ts +28 -0
- package/dist/neutral/master/implementation.node.d.ts.map +1 -1
- package/dist/neutral/master/index-browser.d.ts +2 -0
- package/dist/neutral/master/index-browser.d.ts.map +1 -1
- package/dist/neutral/master/index-node.d.ts +4 -1
- package/dist/neutral/master/index-node.d.ts.map +1 -1
- package/dist/neutral/master/pool-browser.d.ts +1 -0
- package/dist/neutral/master/pool-browser.d.ts.map +1 -1
- package/dist/neutral/master/pool-node.d.ts +1 -0
- package/dist/neutral/master/pool-node.d.ts.map +1 -1
- package/dist/neutral/master/pool-types.d.ts +10 -0
- package/dist/neutral/master/pool-types.d.ts.map +1 -1
- package/dist/neutral/master/spawn.mjs +9 -0
- package/dist/neutral/master/spawn.mjs.map +2 -2
- package/dist/neutral/observable-promise.d.ts +9 -0
- package/dist/neutral/observable-promise.d.ts.map +1 -1
- package/dist/neutral/observable-promise.mjs +9 -0
- package/dist/neutral/observable-promise.mjs.map +2 -2
- package/dist/neutral/observable.d.ts +1 -0
- package/dist/neutral/observable.d.ts.map +1 -1
- package/dist/neutral/observable.mjs +2 -0
- package/dist/neutral/observable.mjs.map +2 -2
- package/dist/neutral/serializers.d.ts +4 -0
- package/dist/neutral/serializers.d.ts.map +1 -1
- package/dist/neutral/transferable.d.ts +5 -2
- package/dist/neutral/transferable.d.ts.map +1 -1
- package/dist/neutral/types/master.d.ts +20 -0
- package/dist/neutral/types/master.d.ts.map +1 -1
- package/dist/neutral/types/messages.d.ts +31 -0
- package/dist/neutral/types/messages.d.ts.map +1 -1
- package/dist/neutral/types/messages.mjs.map +2 -2
- package/dist/neutral/types/worker.d.ts +3 -0
- package/dist/neutral/types/worker.d.ts.map +1 -1
- package/dist/neutral/worker/WorkerGlobalScope.d.ts +3 -0
- package/dist/neutral/worker/WorkerGlobalScope.d.ts.map +1 -1
- package/dist/node/index-node.mjs +52 -16
- package/dist/node/index-node.mjs.map +2 -2
- package/dist/node/isObservable.d.ts +1 -0
- package/dist/node/isObservable.d.ts.map +1 -1
- package/dist/node/master/implementation.node.d.ts +28 -0
- package/dist/node/master/implementation.node.d.ts.map +1 -1
- package/dist/node/master/implementation.node.mjs +43 -16
- package/dist/node/master/implementation.node.mjs.map +2 -2
- package/dist/node/master/index-browser.d.ts +2 -0
- package/dist/node/master/index-browser.d.ts.map +1 -1
- package/dist/node/master/index-node.d.ts +4 -1
- package/dist/node/master/index-node.d.ts.map +1 -1
- package/dist/node/master/index-node.mjs +52 -16
- package/dist/node/master/index-node.mjs.map +2 -2
- package/dist/node/master/pool-browser.d.ts +1 -0
- package/dist/node/master/pool-browser.d.ts.map +1 -1
- package/dist/node/master/pool-node.d.ts +1 -0
- package/dist/node/master/pool-node.d.ts.map +1 -1
- package/dist/node/master/pool-node.mjs.map +2 -2
- package/dist/node/master/pool-types.d.ts +10 -0
- package/dist/node/master/pool-types.d.ts.map +1 -1
- package/dist/node/master/register.mjs +8 -15
- package/dist/node/master/register.mjs.map +2 -2
- package/dist/node/observable-promise.d.ts +9 -0
- package/dist/node/observable-promise.d.ts.map +1 -1
- package/dist/node/observable.d.ts +1 -0
- package/dist/node/observable.d.ts.map +1 -1
- package/dist/node/serializers.d.ts +4 -0
- package/dist/node/serializers.d.ts.map +1 -1
- package/dist/node/transferable.d.ts +5 -2
- package/dist/node/transferable.d.ts.map +1 -1
- package/dist/node/types/master.d.ts +20 -0
- package/dist/node/types/master.d.ts.map +1 -1
- package/dist/node/types/messages.d.ts +31 -0
- package/dist/node/types/messages.d.ts.map +1 -1
- package/dist/node/types/worker.d.ts +3 -0
- package/dist/node/types/worker.d.ts.map +1 -1
- package/dist/node/worker/WorkerGlobalScope.d.ts +3 -0
- package/dist/node/worker/WorkerGlobalScope.d.ts.map +1 -1
- package/dist/node/worker/worker.node.mjs.map +2 -2
- package/package.json +6 -6
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { $transferable } from './symbols.ts';
|
|
2
2
|
/** Descriptor wrapping a value with its associated transferable objects for zero-copy messaging. */
|
|
3
3
|
export interface TransferDescriptor<T = any> {
|
|
4
|
+
/** Marker identifying the object as a transfer descriptor. */
|
|
4
5
|
[$transferable]: true;
|
|
6
|
+
/** Payload sent to the receiving thread. */
|
|
5
7
|
send: T;
|
|
8
|
+
/** Objects whose ownership is transferred with the payload. */
|
|
6
9
|
transferables: Transferable[];
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
@@ -24,7 +27,6 @@ export declare function isTransferDescriptor(thing: any): thing is TransferDescr
|
|
|
24
27
|
* The transferable object cannot be accessed by this thread again
|
|
25
28
|
* unless the receiving thread transfers it back again!
|
|
26
29
|
*
|
|
27
|
-
* @param transferable Array buffer, message port or similar.
|
|
28
30
|
* @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
|
|
29
31
|
*/
|
|
30
32
|
export declare function Transfer(transferable: Transferable): TransferDescriptor;
|
|
@@ -42,7 +44,8 @@ export declare function Transfer(transferable: Transferable): TransferDescriptor
|
|
|
42
44
|
* The transferable object cannot be accessed by this thread again
|
|
43
45
|
* unless the receiving thread transfers it back again!
|
|
44
46
|
*
|
|
45
|
-
* @param
|
|
47
|
+
* @param payload Value sent to the receiving thread.
|
|
48
|
+
* @param transferables Array buffers, message ports, or similar objects transferred with the payload.
|
|
46
49
|
* @see <https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast>
|
|
47
50
|
*/
|
|
48
51
|
export declare function Transfer<T>(payload: T, transferables: Transferable[]): TransferDescriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,oGAAoG;AACpG,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;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED
|
|
1
|
+
{"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/transferable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,oGAAoG;AACpG,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,8DAA8D;IAC9D,CAAC,aAAa,CAAC,EAAE,IAAI,CAAA;IACrB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAA;IACP,+DAA+D;IAC/D,aAAa,EAAE,YAAY,EAAE,CAAA;CAC9B;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,kBAAkB,CAE5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAAA;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAA"}
|
|
@@ -27,9 +27,13 @@ export type ModuleProxy<Methods extends ModuleMethods> = {
|
|
|
27
27
|
};
|
|
28
28
|
/** Internal symbol-keyed properties attached to every spawned thread. */
|
|
29
29
|
export interface PrivateThreadProps {
|
|
30
|
+
/** Observable stream of worker errors. */
|
|
30
31
|
[$errors]: Observable<Error>;
|
|
32
|
+
/** Observable stream of worker lifecycle events. */
|
|
31
33
|
[$events]: Observable<WorkerEvent>;
|
|
34
|
+
/** Terminates the backing worker. */
|
|
32
35
|
[$terminate]: () => Promise<void>;
|
|
36
|
+
/** Worker backing the thread proxy. */
|
|
33
37
|
[$worker]: Worker;
|
|
34
38
|
}
|
|
35
39
|
/** A thread wrapping a single exposed function. */
|
|
@@ -47,6 +51,7 @@ export type Thread = AnyFunctionThread | AnyModuleThread;
|
|
|
47
51
|
export type TransferList = Transferable[];
|
|
48
52
|
/** Worker instance. Either a web worker or a Node.js Worker provided by `worker_threads`. */
|
|
49
53
|
export interface Worker extends EventTarget {
|
|
54
|
+
/** Send a value and optional transfer list to the worker. */
|
|
50
55
|
postMessage(value: any, transferList?: TransferList): void;
|
|
51
56
|
/** In Node.js return type is Promise while in browser return type is void */
|
|
52
57
|
terminate(callback?: (error?: Error, exitCode?: number) => void): void | Promise<number>;
|
|
@@ -71,38 +76,53 @@ export interface ThreadsWorkerOptions extends WorkerOptions {
|
|
|
71
76
|
}
|
|
72
77
|
/** Worker implementation. Either web worker or a Node.js Worker class. */
|
|
73
78
|
export declare class WorkerImplementation extends EventTarget implements Worker {
|
|
79
|
+
/** Create a worker for the given script path. */
|
|
74
80
|
constructor(path: string, options?: ThreadsWorkerOptions);
|
|
81
|
+
/** Send a value and optional transfer list to the worker. */
|
|
75
82
|
postMessage(value: any, transferList?: TransferList): void;
|
|
83
|
+
/** Terminate the worker. */
|
|
76
84
|
terminate(): void | Promise<number>;
|
|
77
85
|
}
|
|
78
86
|
/** Class to spawn workers from a blob or source string. */
|
|
79
87
|
export declare class BlobWorker extends WorkerImplementation {
|
|
88
|
+
/** Create a worker from a source blob. */
|
|
80
89
|
constructor(blob: Blob, options?: ThreadsWorkerOptions);
|
|
90
|
+
/** Create a worker from JavaScript source text. */
|
|
81
91
|
static fromText(source: string, options?: ThreadsWorkerOptions): WorkerImplementation;
|
|
82
92
|
}
|
|
83
93
|
/** Export shape for platform-specific worker implementations. */
|
|
84
94
|
export interface ImplementationExport {
|
|
95
|
+
/** Constructor used for blob-backed workers. */
|
|
85
96
|
blob: typeof BlobWorker;
|
|
97
|
+
/** Default constructor used for path-backed workers. */
|
|
86
98
|
default: typeof WorkerImplementation;
|
|
87
99
|
}
|
|
88
100
|
/** Event as emitted by worker thread. Subscribe to using `Thread.events(thread)`. */
|
|
89
101
|
export declare enum WorkerEventType {
|
|
102
|
+
/** The threads implementation encountered an internal error. */
|
|
90
103
|
internalError = "internalError",
|
|
104
|
+
/** The worker emitted a message. */
|
|
91
105
|
message = "message",
|
|
106
|
+
/** The worker terminated. */
|
|
92
107
|
termination = "termination"
|
|
93
108
|
}
|
|
94
109
|
/** Event indicating an internal error occurred in the worker. */
|
|
95
110
|
export interface WorkerInternalErrorEvent {
|
|
111
|
+
/** Error raised by the worker implementation. */
|
|
96
112
|
error: Error;
|
|
113
|
+
/** Event discriminant. */
|
|
97
114
|
type: WorkerEventType.internalError;
|
|
98
115
|
}
|
|
99
116
|
/** Event containing a message received from the worker. */
|
|
100
117
|
export interface WorkerMessageEvent<Data> {
|
|
118
|
+
/** Message data received from the worker. */
|
|
101
119
|
data: Data;
|
|
120
|
+
/** Event discriminant. */
|
|
102
121
|
type: WorkerEventType.message;
|
|
103
122
|
}
|
|
104
123
|
/** Event indicating the worker has been terminated. */
|
|
105
124
|
export interface WorkerTerminationEvent {
|
|
125
|
+
/** Event discriminant. */
|
|
106
126
|
type: WorkerEventType.termination;
|
|
107
127
|
}
|
|
108
128
|
/** Union of all possible worker event types. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../../../src/types/master.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,57 @@
|
|
|
1
1
|
/** Serialized representation of an Error for transmission between threads. */
|
|
2
2
|
export interface SerializedError {
|
|
3
|
+
/** Marker distinguishing serialized errors from ordinary values. */
|
|
3
4
|
__error_marker: '$$error';
|
|
5
|
+
/** Error message. */
|
|
4
6
|
message: string;
|
|
7
|
+
/** Error class name. */
|
|
5
8
|
name: string;
|
|
9
|
+
/** Captured stack trace, when available. */
|
|
6
10
|
stack?: string;
|
|
7
11
|
}
|
|
8
12
|
/** Types of messages that the master thread can send to a worker. */
|
|
9
13
|
export declare enum MasterMessageType {
|
|
14
|
+
/** Cancel a previously submitted job. */
|
|
10
15
|
cancel = "cancel",
|
|
16
|
+
/** Run a job in the worker. */
|
|
11
17
|
run = "run"
|
|
12
18
|
}
|
|
13
19
|
/** Message sent by the master to cancel a running job. */
|
|
14
20
|
export type MasterJobCancelMessage = {
|
|
21
|
+
/** Message discriminant. */
|
|
15
22
|
type: MasterMessageType.cancel;
|
|
23
|
+
/** Unique identifier of the job to cancel. */
|
|
16
24
|
uid: number;
|
|
17
25
|
};
|
|
18
26
|
/** Message sent by the master to run a function in the worker. */
|
|
19
27
|
export type MasterJobRunMessage = {
|
|
28
|
+
/** Message discriminant. */
|
|
20
29
|
type: MasterMessageType.run;
|
|
30
|
+
/** Unique identifier assigned to the job. */
|
|
21
31
|
uid: number;
|
|
32
|
+
/** Exposed module method to invoke, or omitted for an exposed function. */
|
|
22
33
|
method?: string;
|
|
34
|
+
/** Arguments passed to the exposed function or method. */
|
|
23
35
|
args: any[];
|
|
24
36
|
};
|
|
25
37
|
/** Types of messages that a worker thread can send to the master. */
|
|
26
38
|
export declare enum WorkerMessageType {
|
|
39
|
+
/** A job failed. */
|
|
27
40
|
error = "error",
|
|
41
|
+
/** The worker exposed its callable API. */
|
|
28
42
|
init = "init",
|
|
43
|
+
/** A job produced a result. */
|
|
29
44
|
result = "result",
|
|
45
|
+
/** A job started running. */
|
|
30
46
|
running = "running",
|
|
47
|
+
/** An error escaped the worker job handler. */
|
|
31
48
|
uncaughtError = "uncaughtError"
|
|
32
49
|
}
|
|
33
50
|
/** Message sent by a worker when an uncaught error occurs. */
|
|
34
51
|
export type WorkerUncaughtErrorMessage = {
|
|
52
|
+
/** Message discriminant. */
|
|
35
53
|
type: WorkerMessageType.uncaughtError;
|
|
54
|
+
/** Uncaught error details. */
|
|
36
55
|
error: {
|
|
37
56
|
message: string;
|
|
38
57
|
name: string;
|
|
@@ -41,7 +60,9 @@ export type WorkerUncaughtErrorMessage = {
|
|
|
41
60
|
};
|
|
42
61
|
/** Message sent by a worker after calling `expose()` to signal its API to the master. */
|
|
43
62
|
export type WorkerInitMessage = {
|
|
63
|
+
/** Message discriminant. */
|
|
44
64
|
type: WorkerMessageType.init;
|
|
65
|
+
/** Shape of the function or module exposed by the worker. */
|
|
45
66
|
exposed: {
|
|
46
67
|
type: 'function';
|
|
47
68
|
} | {
|
|
@@ -51,21 +72,31 @@ export type WorkerInitMessage = {
|
|
|
51
72
|
};
|
|
52
73
|
/** Message sent by a worker when a job encounters an error. */
|
|
53
74
|
export type WorkerJobErrorMessage = {
|
|
75
|
+
/** Message discriminant. */
|
|
54
76
|
type: WorkerMessageType.error;
|
|
77
|
+
/** Unique identifier of the failed job. */
|
|
55
78
|
uid: number;
|
|
79
|
+
/** Serialized failure raised by the job. */
|
|
56
80
|
error: SerializedError;
|
|
57
81
|
};
|
|
58
82
|
/** Message sent by a worker containing a job's result value. */
|
|
59
83
|
export type WorkerJobResultMessage = {
|
|
84
|
+
/** Message discriminant. */
|
|
60
85
|
type: WorkerMessageType.result;
|
|
86
|
+
/** Unique identifier of the completed or updated job. */
|
|
61
87
|
uid: number;
|
|
88
|
+
/** Whether an observable job has finished emitting values. */
|
|
62
89
|
complete?: true;
|
|
90
|
+
/** Result value or observable emission. */
|
|
63
91
|
payload?: any;
|
|
64
92
|
};
|
|
65
93
|
/** Message sent by a worker when a job starts executing. */
|
|
66
94
|
export type WorkerJobStartMessage = {
|
|
95
|
+
/** Message discriminant. */
|
|
67
96
|
type: WorkerMessageType.running;
|
|
97
|
+
/** Unique identifier of the started job. */
|
|
68
98
|
uid: number;
|
|
99
|
+
/** Asynchronous result protocol used by the job. */
|
|
69
100
|
resultType: 'observable' | 'promise';
|
|
70
101
|
};
|
|
71
102
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,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,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,0DAA0D;AAC1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,kEAAkE;AAClE,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,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,aAAa,kBAAkB;CAChC;AAED,8DAA8D;AAC9D,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,yFAAyF;AACzF,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,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,gEAAgE;AAChE,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,4DAA4D;AAC5D,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
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/types/messages.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,cAAc,EAAE,SAAS,CAAA;IACzB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,yCAAyC;IACzC,MAAM,WAAW;IACjB,+BAA+B;IAC/B,GAAG,QAAQ;CACZ;AAED,0DAA0D;AAC1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAA;IAC3B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAA;AAKD,qEAAqE;AACrE,oBAAY,iBAAiB;IAC3B,oBAAoB;IACpB,KAAK,UAAU;IACf,2CAA2C;IAC3C,IAAI,SAAS;IACb,+BAA+B;IAC/B,MAAM,WAAW;IACjB,6BAA6B;IAC7B,OAAO,YAAY;IACnB,+CAA+C;IAC/C,aAAa,kBAAkB;CAChC;AAED,8DAA8D;AAC9D,MAAM,MAAM,0BAA0B,GAAG;IACvC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAA;IACrC,8BAA8B;IAC9B,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAA;IAC5B,6DAA6D;IAC7D,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,+DAA+D;AAC/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAA;IAC7B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,4CAA4C;IAC5C,KAAK,EAAE,eAAe,CAAA;CACvB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,sBAAsB,GAAG;IACnC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAA;IAC9B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAA;IACX,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,2CAA2C;IAC3C,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,CAAA;AAED,4DAA4D;AAC5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,4BAA4B;IAC5B,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAA;IAC/B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,oDAAoD;IACpD,UAAU,EAAE,YAAY,GAAG,SAAS,CAAA;CACrC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/messages.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/member-ordering */\n\n/** Serialized representation of an Error for transmission between threads. */\nexport interface SerializedError {\n __error_marker: '$$error'\n message: string\n name: string\n stack?: string\n}\n\n/////////////////////////////\n// Messages sent by master:\n\n/** Types of messages that the master thread can send to a worker. */\nexport enum MasterMessageType {\n cancel = 'cancel',\n run = 'run',\n}\n\n/** Message sent by the master to cancel a running job. */\nexport type MasterJobCancelMessage = {\n type: MasterMessageType.cancel\n uid: number\n}\n\n/** Message sent by the master to run a function in the worker. */\nexport type MasterJobRunMessage = {\n type: MasterMessageType.run\n uid: number\n method?: string\n args: any[]\n}\n\n////////////////////////////\n// Messages sent by worker:\n\n/** Types of messages that a worker thread can send to the master. */\nexport enum WorkerMessageType {\n error = 'error',\n init = 'init',\n result = 'result',\n running = 'running',\n uncaughtError = 'uncaughtError',\n}\n\n/** Message sent by a worker when an uncaught error occurs. */\nexport type WorkerUncaughtErrorMessage = {\n type: WorkerMessageType.uncaughtError\n error: {\n message: string\n name: string\n stack?: string\n }\n}\n\n/** Message sent by a worker after calling `expose()` to signal its API to the master. */\nexport type WorkerInitMessage = {\n type: WorkerMessageType.init\n exposed: { type: 'function' } | { type: 'module'; methods: string[] }\n}\n\n/** Message sent by a worker when a job encounters an error. */\nexport type WorkerJobErrorMessage = {\n type: WorkerMessageType.error\n uid: number\n error: SerializedError\n}\n\n/** Message sent by a worker containing a job's result value. */\nexport type WorkerJobResultMessage = {\n type: WorkerMessageType.result\n uid: number\n complete?: true\n payload?: any\n}\n\n/** Message sent by a worker when a job starts executing. */\nexport type WorkerJobStartMessage = {\n type: WorkerMessageType.running\n uid: number\n resultType: 'observable' | 'promise'\n}\n"],
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/member-ordering */\n\n/** Serialized representation of an Error for transmission between threads. */\nexport interface SerializedError {\n /** Marker distinguishing serialized errors from ordinary values. */\n __error_marker: '$$error'\n /** Error message. */\n message: string\n /** Error class name. */\n name: string\n /** Captured stack trace, when available. */\n stack?: string\n}\n\n/////////////////////////////\n// Messages sent by master:\n\n/** Types of messages that the master thread can send to a worker. */\nexport enum MasterMessageType {\n /** Cancel a previously submitted job. */\n cancel = 'cancel',\n /** Run a job in the worker. */\n run = 'run',\n}\n\n/** Message sent by the master to cancel a running job. */\nexport type MasterJobCancelMessage = {\n /** Message discriminant. */\n type: MasterMessageType.cancel\n /** Unique identifier of the job to cancel. */\n uid: number\n}\n\n/** Message sent by the master to run a function in the worker. */\nexport type MasterJobRunMessage = {\n /** Message discriminant. */\n type: MasterMessageType.run\n /** Unique identifier assigned to the job. */\n uid: number\n /** Exposed module method to invoke, or omitted for an exposed function. */\n method?: string\n /** Arguments passed to the exposed function or method. */\n args: any[]\n}\n\n////////////////////////////\n// Messages sent by worker:\n\n/** Types of messages that a worker thread can send to the master. */\nexport enum WorkerMessageType {\n /** A job failed. */\n error = 'error',\n /** The worker exposed its callable API. */\n init = 'init',\n /** A job produced a result. */\n result = 'result',\n /** A job started running. */\n running = 'running',\n /** An error escaped the worker job handler. */\n uncaughtError = 'uncaughtError',\n}\n\n/** Message sent by a worker when an uncaught error occurs. */\nexport type WorkerUncaughtErrorMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.uncaughtError\n /** Uncaught error details. */\n error: {\n message: string\n name: string\n stack?: string\n }\n}\n\n/** Message sent by a worker after calling `expose()` to signal its API to the master. */\nexport type WorkerInitMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.init\n /** Shape of the function or module exposed by the worker. */\n exposed: { type: 'function' } | { type: 'module'; methods: string[] }\n}\n\n/** Message sent by a worker when a job encounters an error. */\nexport type WorkerJobErrorMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.error\n /** Unique identifier of the failed job. */\n uid: number\n /** Serialized failure raised by the job. */\n error: SerializedError\n}\n\n/** Message sent by a worker containing a job's result value. */\nexport type WorkerJobResultMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.result\n /** Unique identifier of the completed or updated job. */\n uid: number\n /** Whether an observable job has finished emitting values. */\n complete?: true\n /** Result value or observable emission. */\n payload?: any\n}\n\n/** Message sent by a worker when a job starts executing. */\nexport type WorkerJobStartMessage = {\n /** Message discriminant. */\n type: WorkerMessageType.running\n /** Unique identifier of the started job. */\n uid: number\n /** Asynchronous result protocol used by the job. */\n resultType: 'observable' | 'promise'\n}\n"],
|
|
5
|
+
"mappings": ";AAmBO,IAAK,oBAAL,kBAAKA,uBAAL;AAEL,EAAAA,mBAAA,YAAS;AAET,EAAAA,mBAAA,SAAM;AAJI,SAAAA;AAAA,GAAA;AA+BL,IAAK,oBAAL,kBAAKC,uBAAL;AAEL,EAAAA,mBAAA,WAAQ;AAER,EAAAA,mBAAA,UAAO;AAEP,EAAAA,mBAAA,YAAS;AAET,EAAAA,mBAAA,aAAU;AAEV,EAAAA,mBAAA,mBAAgB;AAVN,SAAAA;AAAA,GAAA;",
|
|
6
6
|
"names": ["MasterMessageType", "WorkerMessageType"]
|
|
7
7
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
type UnsubscribeFn = () => void;
|
|
2
2
|
/** Abstraction layer for the worker runtime API, used by `expose()` to communicate with the master thread. */
|
|
3
3
|
export interface AbstractedWorkerAPI {
|
|
4
|
+
/** Determine whether the current runtime is a worker. */
|
|
4
5
|
isWorkerRuntime(): boolean;
|
|
6
|
+
/** Send a message and optional transfer list to the master thread. */
|
|
5
7
|
postMessageToMaster(message: any, transferList?: Transferable[]): void;
|
|
8
|
+
/** Subscribe to messages sent by the master thread. */
|
|
6
9
|
subscribeToMasterMessages(onMessage: (data: any) => void): UnsubscribeFn;
|
|
7
10
|
}
|
|
8
11
|
/** A function that can be exposed from a worker thread. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,8GAA8G;AAC9G,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,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,gGAAgG;AAChG,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/types/worker.ts"],"names":[],"mappings":"AAEA,KAAK,aAAa,GAAG,MAAM,IAAI,CAAA;AAE/B,8GAA8G;AAC9G,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,eAAe,IAAI,OAAO,CAAA;IAC1B,sEAAsE;IACtE,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IACtE,uDAAuD;IACvD,yBAAyB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,aAAa,CAAA;CACzE;AAED,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAEpE,gGAAgG;AAChG,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/** Minimal interface representing the global scope inside a web worker. */
|
|
2
2
|
export interface WorkerGlobalScope {
|
|
3
|
+
/** Register a worker-global event listener. */
|
|
3
4
|
addEventListener(eventName: string, listener: (event: Event) => void): void;
|
|
5
|
+
/** Send a message and optional transfer list to the master context. */
|
|
4
6
|
postMessage(message: unknown, transferList?: readonly Transferable[]): void;
|
|
7
|
+
/** Remove a worker-global event listener. */
|
|
5
8
|
removeEventListener(eventName: string, listener: (event: Event) => void): void;
|
|
6
9
|
}
|
|
7
10
|
//# sourceMappingURL=WorkerGlobalScope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,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,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC3E,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
|
|
1
|
+
{"version":3,"file":"WorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerGlobalScope.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,+CAA+C;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;IAC3E,uEAAuE;IACvE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAA;IAC3E,6CAA6C;IAC7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAA;CAC/E"}
|
package/dist/node/index-node.mjs
CHANGED
|
@@ -53,8 +53,16 @@ function resolveScriptPath(scriptPath, baseURL) {
|
|
|
53
53
|
const absolutePath = makeAbsolute(scriptPath);
|
|
54
54
|
return absolutePath;
|
|
55
55
|
}
|
|
56
|
+
var registry = {
|
|
57
|
+
allWorkers: [],
|
|
58
|
+
signalHandlers: /* @__PURE__ */ new Map()
|
|
59
|
+
};
|
|
60
|
+
async function terminateAllWorkers() {
|
|
61
|
+
const workers = [...registry.allWorkers];
|
|
62
|
+
registry.allWorkers = [];
|
|
63
|
+
await Promise.all(workers.map((worker) => worker.terminate()));
|
|
64
|
+
}
|
|
56
65
|
function initWorkerThreadsWorker() {
|
|
57
|
-
let allWorkers = [];
|
|
58
66
|
class Worker3 extends NativeWorker {
|
|
59
67
|
mappedEventListeners;
|
|
60
68
|
constructor(scriptPath, options) {
|
|
@@ -66,7 +74,10 @@ function initWorkerThreadsWorker() {
|
|
|
66
74
|
super(resolvedScriptPath, options);
|
|
67
75
|
}
|
|
68
76
|
this.mappedEventListeners = /* @__PURE__ */ new WeakMap();
|
|
69
|
-
allWorkers.push(this);
|
|
77
|
+
registry.allWorkers.push(this);
|
|
78
|
+
this.once("exit", () => {
|
|
79
|
+
registry.allWorkers = registry.allWorkers.filter((worker) => worker !== this);
|
|
80
|
+
});
|
|
70
81
|
}
|
|
71
82
|
addEventListener(eventName, rawListener) {
|
|
72
83
|
const listener = (message) => {
|
|
@@ -80,19 +91,6 @@ function initWorkerThreadsWorker() {
|
|
|
80
91
|
this.off(eventName, listener);
|
|
81
92
|
}
|
|
82
93
|
}
|
|
83
|
-
const terminateWorkersAndMaster = () => {
|
|
84
|
-
void (async () => {
|
|
85
|
-
try {
|
|
86
|
-
await Promise.all(allWorkers.map((worker) => worker.terminate()));
|
|
87
|
-
process.exit(0);
|
|
88
|
-
} catch {
|
|
89
|
-
process.exit(1);
|
|
90
|
-
}
|
|
91
|
-
})();
|
|
92
|
-
allWorkers = [];
|
|
93
|
-
};
|
|
94
|
-
process.on("SIGINT", () => terminateWorkersAndMaster());
|
|
95
|
-
process.on("SIGTERM", () => terminateWorkersAndMaster());
|
|
96
94
|
class BlobWorker2 extends Worker3 {
|
|
97
95
|
constructor(blob, options) {
|
|
98
96
|
super(Buffer.from(blob).toString("utf-8"), { ...options, fromSource: true });
|
|
@@ -116,6 +114,33 @@ function getWorkerImplementation() {
|
|
|
116
114
|
function isWorkerRuntime() {
|
|
117
115
|
return !isMainThread;
|
|
118
116
|
}
|
|
117
|
+
function installWorkerSignalHandlers(options = {}) {
|
|
118
|
+
getWorkerImplementation();
|
|
119
|
+
const signals = options.signals ?? ["SIGINT", "SIGTERM"];
|
|
120
|
+
const exitProcess = options.exitProcess === true;
|
|
121
|
+
uninstallWorkerSignalHandlers();
|
|
122
|
+
for (const signal of signals) {
|
|
123
|
+
const handler = () => {
|
|
124
|
+
void (async () => {
|
|
125
|
+
try {
|
|
126
|
+
await terminateAllWorkers();
|
|
127
|
+
if (exitProcess) process.exit(0);
|
|
128
|
+
} catch {
|
|
129
|
+
if (exitProcess) process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
})();
|
|
132
|
+
};
|
|
133
|
+
process.on(signal, handler);
|
|
134
|
+
registry.signalHandlers.set(signal, handler);
|
|
135
|
+
}
|
|
136
|
+
return uninstallWorkerSignalHandlers;
|
|
137
|
+
}
|
|
138
|
+
function uninstallWorkerSignalHandlers() {
|
|
139
|
+
for (const [signal, handler] of registry.signalHandlers) {
|
|
140
|
+
process.off(signal, handler);
|
|
141
|
+
}
|
|
142
|
+
registry.signalHandlers.clear();
|
|
143
|
+
}
|
|
119
144
|
|
|
120
145
|
// src/master/pool-browser.ts
|
|
121
146
|
import DebugLogger from "debug";
|
|
@@ -469,6 +494,7 @@ function isThenable(thing) {
|
|
|
469
494
|
return thing != null && typeof thing.then === "function";
|
|
470
495
|
}
|
|
471
496
|
var ObservablePromise = class _ObservablePromise extends Observable2 {
|
|
497
|
+
/** Standard object tag identifying this hybrid promise. */
|
|
472
498
|
[Symbol.toStringTag] = "[object ObservablePromise]";
|
|
473
499
|
initHasRun = false;
|
|
474
500
|
fulfillmentCallbacks = [];
|
|
@@ -477,6 +503,10 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
|
|
|
477
503
|
firstValueSet = false;
|
|
478
504
|
rejection;
|
|
479
505
|
state = "pending";
|
|
506
|
+
/**
|
|
507
|
+
* Create an observable promise.
|
|
508
|
+
* @param init Initializes each observable subscription.
|
|
509
|
+
*/
|
|
480
510
|
constructor(init) {
|
|
481
511
|
super((originalObserver) => {
|
|
482
512
|
const self = this;
|
|
@@ -559,12 +589,15 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
|
|
|
559
589
|
this.rejectionCallbacks.push(rejectionCallback);
|
|
560
590
|
});
|
|
561
591
|
}
|
|
592
|
+
/** Register handlers for the first emitted value or a rejection. */
|
|
562
593
|
then(onFulfilledRaw, onRejectedRaw) {
|
|
563
594
|
return this.createPromise(onFulfilledRaw, onRejectedRaw);
|
|
564
595
|
}
|
|
596
|
+
/** Register a rejection handler. */
|
|
565
597
|
catch(onRejected) {
|
|
566
598
|
return this.createPromise(void 0, onRejected);
|
|
567
599
|
}
|
|
600
|
+
/** Register a handler invoked after fulfillment or rejection. */
|
|
568
601
|
finally(onCompleted) {
|
|
569
602
|
const handler = onCompleted || doNothing2;
|
|
570
603
|
return this.createPromise(
|
|
@@ -575,6 +608,7 @@ var ObservablePromise = class _ObservablePromise extends Observable2 {
|
|
|
575
608
|
() => handler()
|
|
576
609
|
);
|
|
577
610
|
}
|
|
611
|
+
/** Convert an observable, thenable, or array-like value to an observable promise. */
|
|
578
612
|
static from(thing) {
|
|
579
613
|
return isThenable(thing) ? new _ObservablePromise((observer) => {
|
|
580
614
|
void (async () => {
|
|
@@ -832,8 +866,10 @@ export {
|
|
|
832
866
|
Thread,
|
|
833
867
|
Transfer,
|
|
834
868
|
Worker2 as Worker,
|
|
869
|
+
installWorkerSignalHandlers,
|
|
835
870
|
isWorkerRuntime,
|
|
836
871
|
registerSerializer,
|
|
837
|
-
spawn
|
|
872
|
+
spawn,
|
|
873
|
+
uninstallWorkerSignalHandlers
|
|
838
874
|
};
|
|
839
875
|
//# sourceMappingURL=index-node.mjs.map
|