Files
deno-valideno/validators/number.ts
Sebastian Seedorf d33ce96d18 NaN option
2020-05-26 20:35:54 +02:00

38 lines
932 B
TypeScript

import { Validator, Args } from "../mod.ts";
export function isNumber(
{ allowNaN = false }: { allowNaN?: boolean } = {},
): Validator {
return {
type: "isNumber",
check: (value: any) => {
if (value === null || value === undefined) return;
if (allowNaN && Number.isNaN(value)) return;
if (!Number.isFinite(value)) {
return {};
}
},
message: (value: any, args?: Args) => {
return `This value has to be a number.`;
},
};
}
export function isInteger(
{ allowNaN = false }: { allowNaN?: boolean } = {},
): Validator {
return {
type: "isInteger",
check: (value: any) => {
if (value === null || value === undefined) return;
if (allowNaN && Number.isNaN(value)) return;
if (!Number.isInteger(value)) {
return {};
}
},
message: (value: any, args?: Args) => {
return `This value has to be an integer.`;
},
};
}