@xylabs/threads
Version:
Web workers & worker threads as simple as a function call
63 lines (61 loc) • 1.55 kB
TypeScript
interface SerializedError {
__error_marker: '$$error';
message: string;
name: string;
stack?: string;
}
declare enum MasterMessageType {
cancel = "cancel",
run = "run"
}
type MasterJobCancelMessage = {
type: MasterMessageType.cancel;
uid: number;
};
type MasterJobRunMessage = {
type: MasterMessageType.run;
uid: number;
method?: string;
args: any[];
};
declare enum WorkerMessageType {
error = "error",
init = "init",
result = "result",
running = "running",
uncaughtError = "uncaughtError"
}
type WorkerUncaughtErrorMessage = {
type: WorkerMessageType.uncaughtError;
error: {
message: string;
name: string;
stack?: string;
};
};
type WorkerInitMessage = {
type: WorkerMessageType.init;
exposed: {
type: 'function';
} | {
type: 'module';
methods: string[];
};
};
type WorkerJobErrorMessage = {
type: WorkerMessageType.error;
uid: number;
error: SerializedError;
};
type WorkerJobResultMessage = {
type: WorkerMessageType.result;
uid: number;
complete?: true;
payload?: any;
};
type WorkerJobStartMessage = {
type: WorkerMessageType.running;
uid: number;
resultType: 'observable' | 'promise';
};
export { type MasterJobCancelMessage, type MasterJobRunMessage, MasterMessageType, type SerializedError, type WorkerInitMessage, type WorkerJobErrorMessage, type WorkerJobResultMessage, type WorkerJobStartMessage, WorkerMessageType, type WorkerUncaughtErrorMessage };