@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
52 lines • 2.05 kB
JavaScript
var BooleanSerializer = (function () {
function BooleanSerializer() {
}
BooleanSerializer.prototype.serialize = function (x, serializerContext) {
if (x === undefined) {
return serializerContext.serializedDefaultValue;
}
if (x === null) {
return serializerContext.serializedNullValue;
}
if (typeof x === 'boolean') {
return x;
}
if (serializerContext.useImplicitConversion) {
return this.convert(x, serializerContext);
}
serializerContext.logger.error('BooleanSerializer', "".concat(serializerContext.jsonPath, ": cannot serialize value as boolean."), x);
return undefined;
};
BooleanSerializer.prototype.deserialize = function (x, serializerContext) {
if (x === undefined) {
return serializerContext.deserializedDefaultValue;
}
if (x === null) {
return serializerContext.deserializedNullValue;
}
if (typeof x === 'boolean') {
return x;
}
if (serializerContext.useImplicitConversion) {
return this.convert(x, serializerContext);
}
serializerContext.logger.error('BooleanSerializer', "".concat(serializerContext.jsonPath, ": cannot deserialize value as boolean."), x);
return undefined;
};
BooleanSerializer.prototype.convert = function (x, serializerContext) {
if (typeof x === 'string' && (x === 'true' || x === 'false')) {
return x === 'true';
}
if (typeof x === 'string' && (x === '1' || x === '0')) {
return x === '1';
}
if (typeof x === 'number' && (x === 1 || x === 0)) {
return x === 1;
}
serializerContext.logger.error('BooleanSerializer', "".concat(serializerContext.jsonPath, ": cannot convert value to boolean."), x);
return undefined;
};
return BooleanSerializer;
}());
export { BooleanSerializer };
//# sourceMappingURL=boolean-serializer.js.map