serde-ts/src/registry.ts

20 lines
681 B
TypeScript

import { Deserialize } from './de'
import { Serialize } from './ser'
export class Registry {
serializers: Map<Function, Serialize<any>> = new Map()
deserializers: Map<Function, Deserialize<any>> = new Map()
registerSerializer<T>(ctor: Function, serialize: Serialize<T>) {
this.serializers.set(ctor, serialize)
}
registerDeserializer<T>(ctor: Function, deserialize: Deserialize<T>) {
this.deserializers.set(ctor, deserialize)
}
}
export const GlobalRegistry = new Registry()
export const registerSerializer = GlobalRegistry.registerSerializer.bind(GlobalRegistry)
export const registerDeserializer = GlobalRegistry.registerDeserializer.bind(GlobalRegistry)