tupleson
Version:
A hackable JSON serializer/deserializer
22 lines (17 loc) • 399 B
text/typescript
import { TsonType } from "../syncTypes.js";
/**
* Prevents `NaN` and `Infinity` from being serialized
*/
export const tsonNumberGuard: TsonType<number, number> = {
primitive: "number",
test: (v) => {
const value = v as number;
if (isNaN(value)) {
throw new Error("Encountered NaN");
}
if (!isFinite(value)) {
throw new Error("Encountered Infinity");
}
return false;
},
};