MCPcopy Create free account
hub / github.com/apache/fory / getRootDeserializer

Method getRootDeserializer

javascript/packages/core/lib/fory.ts:217–238  ·  view source on GitHub ↗
(serializer: Serializer)

Source from the content-addressed store, hash-verified

215 }
216
217 private getRootDeserializer(serializer: Serializer) {
218 let rootDeserializer = this.rootDeserializers.get(serializer);
219 if (rootDeserializer !== undefined) {
220 return rootDeserializer;
221 }
222 const readContext = this.readContext;
223 const reader = readContext.reader;
224 const rootSerializer = TypeId.polymorphicType(serializer.getTypeId())
225 ? serializer
226 : this.anySerializer;
227 const rootHeader = ConfigFlags.isCrossLanguageFlag;
228 rootDeserializer = (bytes: Uint8Array) => {
229 readContext.reset(bytes);
230 const bitmap = reader.readUint8();
231 if (bitmap !== rootHeader) {
232 this.throwInvalidRootHeader(bitmap);
233 }
234 return rootSerializer.readRef();
235 };
236 this.rootDeserializers.set(serializer, rootDeserializer);
237 return rootDeserializer;
238 }
239
240 serialize<T = any>(data: T, serializer: Serializer = this.anySerializer) {
241 return this.getRootSerializer(serializer)(data);

Callers 1

registerMethod · 0.95

Calls 7

getMethod · 0.65
getTypeIdMethod · 0.65
resetMethod · 0.65
readRefMethod · 0.65
readUint8Method · 0.45
setMethod · 0.45

Tested by

no test coverage detected