@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
39 lines • 1.12 kB
JavaScript
/**
* @module Serde
*/
import { DeserializationSerdeError, SerializationSerdeError, } from "../../../../serde/contracts/_module-exports.js";
/**
* @internal
*/
export class SqlSerde {
serde;
constructor(serde) {
this.serde = serde;
}
serialize(value) {
try {
if (typeof value === "number" &&
!Number.isNaN(value) &&
isFinite(value)) {
return String(value);
}
return this.serde.serialize(value);
}
catch (error) {
throw new SerializationSerdeError(`Serialization error "${String(error)}" occured`, error);
}
}
deserialize(value) {
try {
const isNumberRegex = /^(-?([0-9]+)(\.[0-5]+)?)$/g;
if (isNumberRegex.test(value)) {
return Number(value);
}
return this.serde.deserialize(value);
}
catch (error) {
throw new DeserializationSerdeError(`Deserialization error "${String(error)}" occured`, error);
}
}
}
//# sourceMappingURL=sql-serde.js.map