UNPKG

multithreading

Version:

The missing standard library for multithreading in JavaScript (Works in the browser, Node.js, Deno, Bun).

54 lines (53 loc) 1.4 kB
import { Transferable } from "./transferable.js"; import { Envelope } from "./types.js"; export declare const toSerialized: unique symbol; export declare const toDeserialized: unique symbol; export declare const enum PayloadType { RAW = 0,// User data (Numbers, Strings, Plain Objects) LIB = 1 } export declare const enum WorkerTaskType { RUN = 0 } export declare const enum WorkerResponseType { RESULT = 0, ERROR = 1 } export interface SerializableConstructor<T extends Serializable = Serializable> { new (...args: any[]): T; [toDeserialized](obj: unknown): T; } export declare abstract class Serializable { abstract [toSerialized](): readonly [ /** * value */ unknown ] | readonly [ /** * value */ unknown, /** * transfer */ Transferable[] ] | readonly [ /** * value */ unknown, /** * transfer */ Transferable[], /** * typeId (Escape hatch for proxies) */ number ]; static [toDeserialized](_obj: unknown): Serializable; } export declare function register(typeId: number, cls: SerializableConstructor): void; export declare function serialize(arg: any): [Envelope, Transferable[]]; export declare function deserialize(envelope: Envelope): any;