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