Files
zod-schema-class/src/jsonifiable/schema/decimal.ts
Julien Valverdé c980148c0a
Some checks failed
continuous-integration/drone/push Build is failing
Jsonifiable schema refactoring
2024-01-16 15:30:50 +01:00

26 lines
556 B
TypeScript

import { Decimal } from "decimal.js"
import { z } from "zod"
export function jsonifyDecimalSchema<
S extends z.ZodType<Decimal, z.ZodTypeDef, Decimal>
>(schema: S) {
return schema.transform(v => v.toJSON())
}
export function dejsonifyDecimalSchema<
S extends z.ZodType<Decimal, z.ZodTypeDef, Decimal>
>(schema: S) {
return z
.string()
.transform(v => {
try {
return new Decimal(v)
}
catch (e) {
return v
}
})
.pipe(schema)
}