nagoya

1.2.0 • Public • Published

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

Package Sidebar

Install

npm i nagoya

Weekly Downloads

0

Version

1.2.0

License

MIT

Last publish

Collaborators

  • l8d