@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
40 lines • 1.73 kB
JavaScript
var ArrayBufferSerializer = (function () {
function ArrayBufferSerializer() {
}
ArrayBufferSerializer.prototype.serialize = function (x, serializerContext) {
if (x === undefined) {
return serializerContext.serializedDefaultValue;
}
if (x === null) {
return serializerContext.serializedNullValue;
}
if (x instanceof ArrayBuffer) {
var arrayBufferView = new Uint16Array(x);
var charCodeArray = Array.from(arrayBufferView);
return charCodeArray.map(function (c) { return String.fromCharCode(c); }).join('');
}
serializerContext.logger.error('ArrayBufferSerializer', "".concat(serializerContext.jsonPath, ": cannot serialize value as array buffer."), x);
return undefined;
};
ArrayBufferSerializer.prototype.deserialize = function (x, serializerContext) {
if (x === undefined) {
return serializerContext.deserializedDefaultValue;
}
if (x === null) {
return serializerContext.deserializedNullValue;
}
if (typeof x === 'string') {
var arrayBuffer = new ArrayBuffer(x.length * 2);
var arrayBufferView = new Uint16Array(arrayBuffer);
for (var i = 0; i < x.length; i++) {
arrayBufferView[i] = x.charCodeAt(i);
}
return arrayBuffer;
}
serializerContext.logger.error('ArrayBufferSerializer', "".concat(serializerContext.jsonPath, ": cannot deserialize value as array buffer."), x);
return undefined;
};
return ArrayBufferSerializer;
}());
export { ArrayBufferSerializer };
//# sourceMappingURL=array-buffer-serializer.js.map