UNPKG

@xylabs/threads

Version:

Web workers & worker threads as simple as a function call

8 lines (7 loc) 2.63 kB
{ "version": 3, "sources": ["../../../src/types/messages.ts"], "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"], "mappings": ";AAeO,IAAK,oBAAL,kBAAKA,uBAAL;AACL,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,SAAM;AAFI,SAAAA;AAAA,GAAA;AAuBL,IAAK,oBAAL,kBAAKC,uBAAL;AACL,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,mBAAgB;AALN,SAAAA;AAAA,GAAA;", "names": ["MasterMessageType", "WorkerMessageType"] }