MCPcopy Create free account
hub / github.com/dipscope/TypeManager.TS / deserialize

Method deserialize

src/serializers/set-serializer.ts:72–110  ·  view source on GitHub ↗

* Deserializes provided value. * * @param {TypeLike } x Some value. * @param {SerializerContext >} serializerContext Serializer context. * * @returns {TypeLike >} Deserialized value.

(x: TypeLike<any>, serializerContext: SerializerContext<Set<any>>)

Source from the content-addressed store, hash-verified

70 * @returns {TypeLike<Set<any>>} Deserialized value.
71 */
72 public deserialize(x: TypeLike<any>, serializerContext: SerializerContext<Set<any>>): TypeLike<Set<any>>
73 {
74 if (x === undefined)
75 {
76 return serializerContext.deserializedDefaultValue;
77 }
78
79 if (x === null)
80 {
81 return serializerContext.deserializedNullValue;
82 }
83
84 if (Array.isArray(x))
85 {
86 return serializerContext.restoreReference(x, () =>
87 {
88 const array = x;
89 const set = new Set<any>();
90 const genericSerializerContext = serializerContext.defineGenericSerializerContext(0);
91 const valueSerializerContext = genericSerializerContext.defineChildSerializerContext();
92 const serializer = valueSerializerContext.serializer;
93
94 valueSerializerContext.referenceValueSetter = v => set.add(v);
95
96 for (let i = 0; i < array.length; i++)
97 {
98 valueSerializerContext.jsonPathKey = i;
99
100 set.add(serializer.deserialize(array[i], valueSerializerContext));
101 }
102
103 return set;
104 });
105 }
106
107 serializerContext.logger.error('SetSerializer', `${serializerContext.jsonPath}: cannot deserialize value as set.`, x);
108
109 return undefined;
110 }
111}

Callers

nothing calls this directly

Calls 5

restoreReferenceMethod · 0.80
errorMethod · 0.80
deserializeMethod · 0.65

Tested by

no test coverage detected