@baninc/impera
v0.0.2
Published
Simple validation library built in Typescript. Fully typesafe conditioning - Allows for multiple/single validators with multiple/single inputs.
Readme
Impera
Simple validation library built in Typescript. Fully typesafe conditioning - Allows for multiple/single validators with multiple/single inputs.
Example
import { Impera } from "@baninc/impera";
const validator = new Impera({
auth: {
isNumber: (number: string) => {
return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(number);
},
isEmail: (email: string) => {
return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(email);
},
},
});Single Rule Validtations
const authRuleSetEmail = validator.ruleSet("auth").single("isEmail");
console.log(authRuleSetEmail.validate("not-email.com"));
/* Output:
{
value: false,
message: "Input value failed to validate in \"isEmail\".",
}
*/
const authRuleSetEmailCon = validator
.ruleSet("auth")
.single("isEmail")
.validateConditions({
isEmail: "Not valid email.",
});
console.log(authRuleSetEmailCon.validate("not-valid-email.com"));
/* Output:
{
value: false,
message: "Not valid email.",
}
*/
console.log(
authRuleSetEmailCon.validateMultiple([
"not-valid-email.com",
"[email protected]",
])
);
/* Output:
{
"not-valid-email.com": {
value: false,
message: "Not valid email.",
},
"[email protected]": {
value: true,
message: "Input is valid.",
},
}
*/