validate.io

    2.0.7 • Public • Published

    Validate

    NPM version Build Status Coverage Dependencies

    Validation utilities.

    The primary motivation for this module is to validate input arguments provided to publicly exposed methods. Other utilities exist but are either limited, more verbose (use method chaining), used as if asynchronous (callbacks), or part of some larger utility library (e.g., underscore).

    1. Installation
    2. Usage
    3. Methods
    4. Examples
    5. Tests
    6. License

    Installation

    $ npm install validate.io

    Usage

    var validate = require( 'validate.io' );

    Methods

    The validate module is comprised of several smaller modules. If you want to roll your own validate, follow the links and import the individual modules. For method documentation, see each respective module.


    Examples

    var validate = require( 'validate.io' );
     
    function is( bool, value, msg ) {
        if ( validate.isRegexp( value ) ) {
            value = value.toString();
        }
        else if ( validate.isFunction( value ) ) {
            value = value.constructor.name;
        }
        else {
            value = JSON.stringify( value );
        }
        console.log( '%s is %s%s', value, ( bool ) ? '' : 'not ', msg );
    }
     
    var methods,
        bool,
        vals,
        fcn,
        msg,
        v,
        N, M,
        i, j;
     
    vals = [
        'beep',
        5,
        Math.PI,
        -0,
        true,
        null,
        undefined,
        [],
        {},
        function foo(){},
        /.*/,
        new Date(),
        -1,
        JSON.parse
    ];
     
    methods = [
        [ validate.isStringPrimitive, 'a string' ],
        [ validate.isNegativeZero, 'negative zero' ],
        [ validate.isPositiveInteger, 'a positive integer' ],
        [ validate.isPositive, 'a positive number' ],
        [ validate.isNegativeInteger, 'a negative integer' ],
        [ validate.isNull, 'null' ],
        [ validate.isUndefined, 'undefined' ],
        [ validate.isBoolean, 'a boolean' ],
        [ validate.isNativeFunction, 'a native function' ],
        [ validate.isFunction, 'a function' ],
        [ validate.isArray, 'an array' ],
        [ validate.isStrictDate, 'a date object' ],
        [ validate.isRegexp, 'a regular expression' ],
        [ validate.isObject, 'an object' ]
    ];
     
    N = vals.length;
    M = methods.length;
    for ( i = 0; i < N; i++ ) {
        v = vals[ i ];
        for ( j = 0; j < M; j++ ) {
            fcn = methods[ j ][ 0 ];
            msg = methods[ j ][ 1 ];
            bool = fcn( v );
            if ( bool ) {
                is( bool, v, msg );
                break;
            } else {
                is( bool, v, msg );
            }
        }
    }

    To run the example code from the top-level application directory,

    $ node ./examples/index.js

    Tests

    Unit

    Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:

    $ make test

    All new feature development should have corresponding unit tests to validate correct functionality.

    Test Coverage

    This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

    $ make test-cov

    Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

    $ make view-cov

    License

    MIT license.

    Copyright

    Copyright © 2014-2015. The Validate.io Authors.

    Install

    npm i validate.io

    DownloadsWeekly Downloads

    25

    Version

    2.0.7

    License

    none

    Last publish

    Collaborators

    • kgryte