import { Decimal } from "decimal.js" import { z } from "zod" export type JsonifiedDecimalBrand = "@thilawyn/zod-schema-class/JsonifiedDecimal" export function jsonifyDecimalSchema>(schema: S) { return schema .transform(v => v.toJSON()) .brand() } export function dejsonifyDecimalSchema>(schema: S) { return z .custom>() .pipe( z .string() .transform(v => { try { return new Decimal(v) } catch (e) { return v } }) ) .pipe(schema) }