/** * @typedef {import("../entity/IEntity").default} IEntity * @typedef {import("../entity/TypeInitialization").AnyValue} AnyValue */ /** * @template T * @typedef {import("../entity/TypeInitialization").AnyValueConstructor} AnyValueConstructor */ /** * @template {AnyValue} T * @typedef {import("./ISerializer").default} ISerializer */ export default class SerializerFactory { /** @type {Map, ISerializer>} */ static #serializers = new Map() static registerSerializer(entity, object) { SerializerFactory.#serializers.set(entity, object) } /** * @template {AnyValue} T * @param {AnyValueConstructor} entity */ static getSerializer(entity) { return SerializerFactory.#serializers.get(entity) } }