Skip to content

tsuyoshiwada/drip-form-validator

Repository files navigation

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published