UNPKG

@dipscope/type-manager

Version:

Transform JSON strings or plain objects into JS class instances.

42 lines 1.56 kB
export class NumberSerializer { serialize(x, serializerContext) { if (x === undefined) { return serializerContext.serializedDefaultValue; } if (x === null) { return serializerContext.serializedNullValue; } if (typeof x === 'number') { return x; } if (serializerContext.useImplicitConversion) { return this.convert(x, serializerContext); } serializerContext.logger.error('NumberSerializer', `${serializerContext.jsonPath}: cannot serialize value as number.`, x); return undefined; } deserialize(x, serializerContext) { if (x === undefined) { return serializerContext.deserializedDefaultValue; } if (x === null) { return serializerContext.deserializedNullValue; } if (typeof x === 'number') { return x; } if (serializerContext.useImplicitConversion) { return this.convert(x, serializerContext); } serializerContext.logger.error('NumberSerializer', `${serializerContext.jsonPath}: cannot deserialize value as number.`, x); return undefined; } convert(x, serializerContext) { if (typeof x === 'string' || typeof x === 'boolean') { return Number(x); } serializerContext.logger.error('NumberSerializer', `${serializerContext.jsonPath}: cannot convert value to a number.`, x); return undefined; } } //# sourceMappingURL=number-serializer.js.map