( inner: T = z.number() as unknown as T, )
| 24 | * semanticNumber(z.number().default(0)) → number |
| 25 | */ |
| 26 | export function semanticNumber<T extends z.ZodType>( |
| 27 | inner: T = z.number() as unknown as T, |
| 28 | ) { |
| 29 | return z.preprocess((v: unknown) => { |
| 30 | if (typeof v === 'string' && /^-?\d+(\.\d+)?$/.test(v)) { |
| 31 | const n = Number(v) |
| 32 | if (Number.isFinite(n)) return n |
| 33 | } |
| 34 | return v |
| 35 | }, inner) |
| 36 | } |
| 37 |
no outgoing calls
no test coverage detected