Initial commit

This commit is contained in:
zvspany
2026-03-07 16:34:10 +01:00
commit 48d3ac684f
524 changed files with 9352 additions and 0 deletions

26
lib/validation.ts Normal file
View File

@@ -0,0 +1,26 @@
import { z } from "zod";
export const amountSchema = z
.string()
.trim()
.min(1, "Enter an amount")
.refine((value) => !Number.isNaN(Number(value)), "Enter a valid number")
.transform((value) => Number(value))
.refine((value) => Number.isFinite(value), "Enter a valid number")
.refine((value) => value > 0, "Amount must be greater than zero")
.refine((value) => value <= 1_000_000_000_000, "Amount is too large");
export function validateAmount(amount: string):
| { ok: true; value: number }
| { ok: false; error: string } {
const result = amountSchema.safeParse(amount);
if (result.success) {
return { ok: true, value: result.data };
}
return {
ok: false,
error: result.error.issues[0]?.message ?? "Invalid amount"
};
}