UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

52 lines 1.98 kB
var StringSerializer = (function () { function StringSerializer() { } StringSerializer.prototype.serialize = function (x, serializerContext) { if (x === undefined) { return serializerContext.serializedDefaultValue; } if (x === null) { return serializerContext.serializedNullValue; } if (typeof x === 'string') { return x; } if (serializerContext.useImplicitConversion) { return this.convert(x, serializerContext); } serializerContext.logger.error('StringSerializer', "".concat(serializerContext.jsonPath, ": cannot serialize value as string."), x); return undefined; }; StringSerializer.prototype.deserialize = function (x, serializerContext) { if (x === undefined) { return serializerContext.deserializedDefaultValue; } if (x === null) { return serializerContext.deserializedNullValue; } if (typeof x === 'string') { return x; } if (serializerContext.useImplicitConversion) { return this.convert(x, serializerContext); } serializerContext.logger.error('StringSerializer', "".concat(serializerContext.jsonPath, ": cannot deserialize value as string."), x); return undefined; }; StringSerializer.prototype.convert = function (x, serializerContext) { if (typeof x === 'number' || typeof x === 'boolean') { return String(x); } if (x instanceof Date) { return x.toISOString(); } if (typeof x === 'object') { return JSON.stringify(x); } serializerContext.logger.error('StringSerializer', "".concat(serializerContext.jsonPath, ": cannot convert value to string."), x); return undefined; }; return StringSerializer; }()); export { StringSerializer }; //# sourceMappingURL=string-serializer.js.map