"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deserialize = deserialize; const registry_1 = require("../registry"); const generic_1 = require("./generic"); function deserialize(deserializer, into, registry = registry_1.GlobalRegistry) { var _a; const de = registry.deserializers.get(into); if (de == null) { throw new ReferenceError(`No deserializer for ${into.name}`); } else { return de(new generic_1.ProxyDeserializer(deserializer, (_a = into === null || into === void 0 ? void 0 : into[Symbol.metadata]) === null || _a === void 0 ? void 0 : _a.serde)); } }