Skip to content

Validation library for JavaScript/TypeScript with a strongly typed fluent API

License

Notifications You must be signed in to change notification settings

kriasoft/validator-fluent

Repository files navigation

validator.js — fluent edition 🎉

NPM Version NPM Downloads TypeScript Donate Discord

Validation library based on validator.js (✭17k) that provides a strongly typed (TypeScript) fluent API for user input validation and sanitization.

Getting Started

$ 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

Related Projects

How to Contribute

Please create a PR or send me a message on Discord.

License

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.