Validation library based on validator.js (✭17k) that provides a strongly typed (TypeScript) fluent API for user input validation and sanitization.
$ npm install validator validator-fluent
import { validate, ValidationError } from "validator-fluent";
const input = {
givenName: "John",
familyName: "Doe",
email: "john@example.com",
phone: "(555) 555-55-55",
age: "18",
};
// Do not validate empty fields (validation only)
const dryRun = true;
const [data, errors] = validate(input, (value) => ({
given_name: value("givenName")
.notEmpty({ if: !dryRun })
.isLength({ min: 3, max: 25 }),
family_name: value("familyName")
.notEmpty({ if: !dryRun })
.isLength({ min: 1, max: 25 }),
email: value("email").notEmpty().isEmail(),
phone: value("phone").isMobilePhone({ locale: "en-US" }),
age: value("age").toNumber(),
}));
if (Object.keys(errors).length > 0)) {
throw new ValidationError(errors);
}
if (!dryRun) {
await db.table("customer").insert(data);
}
For the full list of available validation rules please refer to:
https://github.com/validatorjs/validator.js#validators
- GraphQL API Starter Kit — project template, pre-configured with TypeScript, GraphQL.js, React, and Relay.
Please create a PR or send me a message on Discord.
Copyright © 2021-present Kriasoft. This source code is licensed under the MIT license found in the LICENSE file.
Made with ♥ by Konstantin Tarkus (@koistya, blog) and contributors.