Skip to content
☕️ Simple and Powerful and Customizable validation library for JavaScript.
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
scripts
src
types/validator
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
book.json
package.json
preprocessor.js
tsconfig.json
tslint.json

README.md

drip-form-validator

Build Status Codecov npm version

Simple and Powerful and Customizable validation library for JavaScript.

Table of Contents

Install

To install the stable version.

$ npm install --save drip-form-validator

Usage

Usage is very simple !

import { Validator } from 'drip-form-validator';

const data = {
  firstName: null,
  lastName: 'wada',
  age: 18,
  email: 'email-address',
  website: 'foobarbaz',
  confirmed: null,
  token: '123456789',
  projects: [
    { title: 'Project 1', tags: [1] },
    { title: 'Project 2', tags: [4, 8] },
    { title: 'Project 3', tags: ['foo', 'bar', 3] },
  ],
};

const v = new Validator(data, {
  firstName: {
    required: true,
  },
  lastName: {
    required: true,
  },
  age: {
    required: true,
    min: 22,
  },
  email: {
    required: true,
    email: true,
  },
  website: {
    url: true,
  },
  confirmed: {
    required: true,
    truthy: true,
  },
  token: {
    checkToken: (value) => value === YOUR_SECRET_TOKEN,
  },
  'projects.*.tags.*': {
    numeric: true,
  },
});

if (v.validate()) {
  // `data` is valid.

} else {
  console.log(v.getAllErrors());
  // {
  //   firstName: [{
  //     rule: 'required',
  //     params: true,
  //     message: 'The firstName field is required.'
  //   }],
  //   age: [{
  //     rule: 'min',
  //     params: true,
  //     message: 'The age must be at least 22.'
  //   }],
  //   email: [{
  //     rule: 'email',
  //     params: true,
  //     message: 'The email must be a valid email address.'
  //   }],
  //   website: [{
  //     rule: 'url',
  //     params: true,
  //     message: 'The website format is invalid.'
  //   }],
  //   confirmed: [{
  //     rule: 'required',
  //     params: true,
  //     message: 'The confirmed field is required.'
  //   }],
  //   token: [{
  //     rule: 'checkToken',
  //     params: [Function: checkToken],
  //     message: 'The token field is invalid.'
  //   }],
  //   'projects.2.tags.0': [{
  //     rule: 'numeric',
  //     params: true,
  //     message: 'The projects.2.tags.0 must be a number.'
  //   }],
  //   'projects.2.tags.1': [{
  //     rule: 'numeric',
  //     params: true,
  //     message: 'The projects.2.tags.1 must be a number.'
  //   }]
  // }
}

Documentation

Contribute

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Bugs, feature requests and comments are more than welcome in the issues.

License

MIT © tsuyoshiwada

You can’t perform that action at this time.