@xylabs/threads
Version:
Web workers & worker threads as simple as a function call
71 lines • 2.08 kB
TypeScript
/** Serialized representation of an Error for transmission between threads. */
export interface SerializedError {
__error_marker: '$$error';
message: string;
name: string;
stack?: string;
}
/** Types of messages that the master thread can send to a worker. */
export declare enum MasterMessageType {
cancel = "cancel",
run = "run"
}
/** Message sent by the master to cancel a running job. */
export type MasterJobCancelMessage = {
type: MasterMessageType.cancel;
uid: number;
};
/** Message sent by the master to run a function in the worker. */
export type MasterJobRunMessage = {
type: MasterMessageType.run;
uid: number;
method?: string;
args: any[];
};
/** Types of messages that a worker thread can send to the master. */
export declare enum WorkerMessageType {
error = "error",
init = "init",
result = "result",
running = "running",
uncaughtError = "uncaughtError"
}
/** Message sent by a worker when an uncaught error occurs. */
export type WorkerUncaughtErrorMessage = {
type: WorkerMessageType.uncaughtError;
error: {
message: string;
name: string;
stack?: string;
};
};
/** Message sent by a worker after calling `expose()` to signal its API to the master. */
export type WorkerInitMessage = {
type: WorkerMessageType.init;
exposed: {
type: 'function';
} | {
type: 'module';
methods: string[];
};
};
/** Message sent by a worker when a job encounters an error. */
export type WorkerJobErrorMessage = {
type: WorkerMessageType.error;
uid: number;
error: SerializedError;
};
/** Message sent by a worker containing a job's result value. */
export type WorkerJobResultMessage = {
type: WorkerMessageType.result;
uid: number;
complete?: true;
payload?: any;
};
/** Message sent by a worker when a job starts executing. */
export type WorkerJobStartMessage = {
type: WorkerMessageType.running;
uid: number;
resultType: 'observable' | 'promise';
};
//# sourceMappingURL=messages.d.ts.map