1.2.0 • Published 9 years ago

nagoya v1.2.0

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

nagoya Build Status NPM Version License

Nagoya is a validation library for writing cool and arbitrary validation schemas and producing user-friendly validation error messages.

Usage

import * as nagoya from 'nagoya';

const schema = {
    username(username) {
        nagoya.isString(username, 'not a string', TypeError);
        nagoya.isAlphanumeric(username, 'must contain only letters and numbers');
        // alternatively nagoya.matches(username, /^\w*$/)
        nagoya.isMinLength(username, 3, 'must be at least 3 characters long');
        nagoya.isMaxLength(username, 30, 'cannot be more than 30 characters long');
    },

    password(password) {
        nagoya.isString(username, 'not a string', TypeError);
        nagoya.isMinLength(username, 8, 'must be at least 8 characters long');
        nagoya.isMaxLength(username, 30, 'cannot be more than 30 characters long');
    },

    email(emailAddress) {
        nagoya.isEmail(emailAddress, 'must be a valid email address');
    }
};

const validate = nagoya.schema(schema);

try {
    validate({
        username: '*asdf^',
        password: 'foo321',
        email: 'bob@@foo.com'
    });
} catch (err) {
    console.log(err.message);
    console.log(err.columns);
}

// ValidationError: username must contain only letters and numbers,
//                  password must be at least 8 characters long,
//                  email must be a valid email address

// {
//     username: [ValidationError: must contain only letters and numbers],
//     password: [ValidationError: must be at least 8 characters long],
//     email: [ValidationError: must be a valid email address]
// }

Documentation

TODO

1.2.0

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.4.3

9 years ago

0.4.2

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago