@xylabs/threads
Version:
Web workers & worker threads as simple as a function call
22 lines (19 loc) • 1.13 kB
TypeScript
interface Serializer<Msg = JsonSerializable, Input = any> {
deserialize(message: Msg): Input;
serialize(input: Input): Msg;
}
interface SerializerImplementation<Msg = JsonSerializable, Input = any> {
deserialize(message: Msg, defaultDeserialize: (msg: Msg) => Input): Input;
serialize(input: Input, defaultSerialize: (inp: Input) => Msg): Msg;
}
type JsonSerializablePrimitive = string | number | boolean | null;
type JsonSerializableObject = {
[key: string]: JsonSerializablePrimitive | JsonSerializablePrimitive[] | JsonSerializableObject | JsonSerializableObject[] | undefined;
};
type JsonSerializable = JsonSerializablePrimitive | JsonSerializablePrimitive[] | JsonSerializableObject | JsonSerializableObject[];
declare const DefaultSerializer: Serializer<JsonSerializable>;
declare global {
var registeredSerializer: Serializer<JsonSerializable>;
}
declare function registerSerializer(serializer: SerializerImplementation<JsonSerializable>): void;
export { DefaultSerializer as D, type JsonSerializable as J, type Serializer as S, type SerializerImplementation as a, registerSerializer as r };