UNPKG

@scalar/api-client

Version:

the open source API testing client

33 lines (32 loc) 1.52 kB
const a = (e, t) => { if (!e || !("type" in e) || typeof t != "string") return { ok: !0 }; if (e.type === "integer" || e.type === "number") { const r = Number(t); if (isNaN(r)) return { ok: !1, message: "Value must be a number (e.g., 42.5)" }; if (e.type === "integer" && !Number.isInteger(r)) return { ok: !1, message: "Value must be a whole number (e.g., 42)" }; if (e.minimum !== void 0 && r < e.minimum) return { ok: !1, message: `Value must be ${e.minimum} or greater` }; if (e.maximum !== void 0 && r > e.maximum) return { ok: !1, message: `Value must be ${e.maximum} or less` }; } if (e.type === "string" && e.format) { if (e.format === "date" && !/^\d{4}-\d{2}-\d{2}$/.test(t ?? "")) return { ok: !1, message: "Please enter a valid date in YYYY-MM-DD format (e.g., 2024-03-20)" }; if (e.format === "date-time" && !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/.test(t ?? "")) return { ok: !1, message: "Please enter a valid date and time in RFC 3339 format (e.g., 2024-03-20T13:45:30Z)" }; if (e.format === "email" && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t ?? "")) return { ok: !1, message: "Please enter a valid email address (e.g., user@example.com)" }; if (e.format === "uri" && !/^[a-zA-Z][a-zA-Z0-9+.-]*:.+$/.test(t ?? "")) return { ok: !1, message: "Please enter a valid URI (e.g., https://example.com)" }; } return { ok: !0 }; }; export { a as validateParameter };