File
Blob: src/sites/static-renderer/attrs.ts
| 1 | export function readOptionalString(value: unknown): string | null { |
| 2 | return typeof value === "string" && value.length > 0 ? value : null; |
| 3 | } |
| 4 | |
| 5 | export function readPositiveNumber(value: unknown): number | null { |
| 6 | if (typeof value === "number" && Number.isFinite(value) && value > 0) { |
| 7 | return value; |
| 8 | } |
| 9 | if (typeof value !== "string" || value.trim() === "") { |
| 10 | return null; |
| 11 | } |
| 12 | const parsed = Number.parseFloat(value); |
| 13 | return Number.isFinite(parsed) && parsed > 0 ? parsed : null; |
| 14 | } |