UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

57 lines 2.83 kB
var ArraySerializer = (function () { function ArraySerializer() { } ArraySerializer.prototype.serialize = function (x, serializerContext) { if (x === undefined) { return serializerContext.serializedDefaultValue; } if (x === null) { return serializerContext.serializedNullValue; } if (Array.isArray(x)) { return serializerContext.defineReference(x, function () { var arrayInput = x; var arrayOutput = new Array(x.length); var genericSerializerContext = serializerContext.defineGenericSerializerContext(0); var valueSerializerContext = genericSerializerContext.defineChildSerializerContext(); var serializer = valueSerializerContext.serializer; valueSerializerContext.referenceValueSetter = function (v, k) { return arrayOutput[k] = v; }; for (var i = 0; i < arrayInput.length; i++) { valueSerializerContext.jsonPathKey = i; arrayOutput[i] = serializer.serialize(arrayInput[i], valueSerializerContext); } return arrayOutput; }); } serializerContext.logger.error('ArraySerializer', "".concat(serializerContext.jsonPath, ": cannot serialize value as array."), x); return undefined; }; ArraySerializer.prototype.deserialize = function (x, serializerContext) { if (x === undefined) { return serializerContext.deserializedDefaultValue; } if (x === null) { return serializerContext.deserializedNullValue; } if (Array.isArray(x)) { return serializerContext.restoreReference(x, function () { var arrayInput = x; var arrayOutput = new Array(x.length); var genericSerializerContext = serializerContext.defineGenericSerializerContext(0); var valueSerializerContext = genericSerializerContext.defineChildSerializerContext(); var serializer = valueSerializerContext.serializer; valueSerializerContext.referenceValueSetter = function (v, k) { return arrayOutput[k] = v; }; for (var i = 0; i < arrayInput.length; i++) { valueSerializerContext.jsonPathKey = i; arrayOutput[i] = serializer.deserialize(arrayInput[i], valueSerializerContext); } return arrayOutput; }); } serializerContext.logger.error('ArraySerializer', "".concat(serializerContext.jsonPath, ": cannot deserialize value as array."), x); return undefined; }; return ArraySerializer; }()); export { ArraySerializer }; //# sourceMappingURL=array-serializer.js.map