typia
Version:
Superfast runtime validators with only one line
30 lines (24 loc) • 704 B
text/typescript
export const boolean = (value: string) =>
value !== "null"
? value === "true" || value === "1"
? true
: value === "false" || value === "0"
? false
: value
: null;
export const bigint = (value: string) =>
value !== "null" ? toBigint(value) : null;
export const number = (value: string) =>
value !== "null" ? toNumber(value) : null;
export const string = (value: string) => (value !== "null" ? value : null);
const toNumber = (str: string): number | string => {
const value: number = Number(str);
return isNaN(value) ? str : value;
};
const toBigint = (str: string): bigint | string => {
try {
return BigInt(str);
} catch {
return str;
}
};