UNPKG

nanolith

Version:

Multi-threading in no time with seamless TypeScript support.

49 lines (48 loc) 2.02 kB
import type { ParentThreadMessageType, WorkerMessageType } from '../constants/messages.js'; import type { MessengerRawData } from './messenger.js'; import type { ExitCode } from './workers.js'; export type RemoveListenerFunction = () => void; export type ParentThreadBaseMessageBody<Type extends ParentThreadMessageType = ParentThreadMessageType> = { type: Type; }; export type ParentThreadSendMessageBody<Data = any> = { data: Data; } & ParentThreadBaseMessageBody<ParentThreadMessageType.Message>; export type ParentThreadCallMessageBody = { key: string; name: string; params: any[]; } & ParentThreadBaseMessageBody<ParentThreadMessageType.Call>; export type ParentThreadMessengerTransferBody = { data: MessengerRawData; } & ParentThreadBaseMessageBody<ParentThreadMessageType.MessengerTransfer>; export type WorkerBaseMessageBody<Type extends WorkerMessageType = WorkerMessageType> = { type: Type; }; export type WorkerSendMessageBody<Data = any> = { data: Data; } & WorkerBaseMessageBody<WorkerMessageType.Message>; export type WorkerTaskReturnMessageBody = { data: any; } & WorkerBaseMessageBody<WorkerMessageType.TaskReturn>; export type WorkerTaskErrorMessageBody = { data: Error; } & WorkerBaseMessageBody<WorkerMessageType.TaskError>; export type WorkerCallReturnMessageBody = { key: string; data: any; } & WorkerBaseMessageBody<WorkerMessageType.CallReturn>; export type WorkerCallErrorMessageBody = { key: string; data: Error; } & WorkerBaseMessageBody<WorkerMessageType.CallError>; export type WorkerMessengerTransferSuccessBody = { data: string; } & WorkerBaseMessageBody<WorkerMessageType.MessengerTransferSuccess>; export type WorkerExceptionMessageBody = { data: Error; } & WorkerBaseMessageBody<WorkerMessageType.WorkerException>; export type WorkerInitializedMessageBody = WorkerBaseMessageBody<WorkerMessageType.Initialized>; export type WorkerExitMessageBody = { code: ExitCode; } & WorkerBaseMessageBody<WorkerMessageType.Exit>;