1.0.5 • Published 5 years ago

@zipavlin/niggle v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

Niggle

Niggle is a tiny, customizable javascript value validator with laravel inspired syntax and no dependencies.

installation

Install using npm install @zipavlin/niggle

example

    const niggle = require('@zipavlin/niggle');
    const validate = new Niggle({
        // optional options
        messages: {
            min: 'Your input is too low! Is should be higher than {{options}}'
        }
    }).validate;
    console.log(validate('min:2|max:5', 3));

methods

Validator has only few public methods:

  1. validate(String validator, String|Int input) - validate input agains validator string and return validity and errors: {valid: Bool, errors: Array|null }
  2. valid(String validator, String|Int input) - validate input agains validator string and return validity: Bool
  3. errors(String validator, String|Int input) - validate input agains validator string and return array of errors: Array|null
  4. registerValidators(Array validators) - register validators
  5. registerPlugins(Array plugins)

validators

core

NameOptionsExampleDescription
minNumber'min:5'length (of string) or amount (for number) must be higher than option
maxNumber'max:5'length (of string) or amount (for number) must be lower than option
betweenNumber,Number'between:1,5'length (of string) or amount (for number) must be between first option and second option
lengthNumber'length:5'length (of string) or amount (for number) must be equal to option
emailNull'email'input must match email pattern
isNumber/String'is:"must be this"'input must be equal to option (type included)
patternPattern'pattern:^\d{2}$'input must match pattern

creating and adding validators

Validator is basically an object with required name, message and callback properties:

const customValidator = {
    name: 'min_or_equal', // required - is used as validator key.
    synonym: 'gte', // optional
    type: 'number', // optional - is passed to callback. Can be: string, number, range, array
    message: 'Input must be higher or equal to {{options}}', // required -- default error message with value injection. Possible dynamic values include options (including arrays), type, input
    callback: (input, options, type) => { // required
        return isNaN(input) ? (input.length >= options) : (input >= options);
    }
}
const validator = new Validator();
validator.registerValidators(customValidator);
validator.validate('min_or_equal:19', 'this is test string'); // true

plugins

Plugins are not supported in this moment, but are planned.

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago