1.0.1 • Published 2 years ago

pro-validator v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

pro-validator

better enterprise validator framworks

Base on validator.js

Secondary development based on validator.js.

So, this package supports most capabilities of validator.js .

Why

First of all, let me explain why I created this package. Please think about this question: 'What scenarios do you use validator for?'

The first thing that comes to mind must be form.

However, when we use validator in form, we alse need a error messgae in validator callback. Just like:

Please enter a legitimate email address.

And when we implement a form, we always use some ui component libraries. just like: Ant Design. In the process of using it, we will find:

There are differences in the definition of validator between the UI component library and the validator library.

Validator libraries exportUI components need
validator.isXXX: return true or falsevalidator.XXX: return error messgae

So, this package born. By this package, we provide a 'judger' libarary to determine if a string is compliant and a 'generator' to custom judger and validator needed for ui components.

How to use

Judger

have access to methods starting with 'is' in validator.js.

extra methods:

  • isLatitude(str)
  • isLongitude(str)
  • isName(str, options)

options of isName: name | desc | default value --------------- | ---------------- | ---------------- min | min length | 0 max | max length | Infinity white | white list | [] black | black list | [] caital | A-Z | true lowercase | a-z | true number | 0-9 | true chinese | Chinese characters:\u4e00-\u9fa5 | true

import { judger } from 'pro-validator';
judger.isEmail('1234567890'); // false

Generator

Use as follows:

import { judger, generator } from 'pro-validator';
const configs = {
  judger: [{
    name: 'isName8To64',
    func: (str) => judger.isName(str, { min: 8, max: 64 })
  }
  }],
  validator: [{
    name: 'name8To64',
    judgers: ['isName8To64'], // Support for multiple judgers
    messages: ['Please try again!'] // Support for multiple error messages, Need to correspond with judgers One by one
  }]
};
const { judger, validator } = generator(configs);