20 lines
681 B
TypeScript
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)
|
|
|