UNPKG

@xylabs/threads

Version:

Web workers & worker threads as simple as a function call

24 lines (18 loc) 830 B
/* eslint-disable @typescript-eslint/no-explicit-any */ import type { JsonSerializable, Serializer, SerializerImplementation, } from './serializers.ts' import { DefaultSerializer, extendSerializer } from './serializers.ts' declare global { var registeredSerializer: Serializer<JsonSerializable> } globalThis.registeredSerializer = globalThis.registeredSerializer ?? DefaultSerializer export function registerSerializer(serializer: SerializerImplementation<JsonSerializable>) { globalThis.registeredSerializer = extendSerializer(globalThis.registeredSerializer, serializer) } export function deserialize(message: JsonSerializable): any { return globalThis.registeredSerializer.deserialize(message) } export function serialize(input: any): JsonSerializable { return globalThis.registeredSerializer.serialize(input) }