proxy-validator

    1.1.0 • Public • Published

    Build Status

    proxy-validator

    Small package that leverages the power of ES6 Proxy to validate and sanitize objects.

    Learn More, read the article:

    How I made a validation library using ES6 Proxy

    Installation

    $ npm i proxy-validator

    Usage

    The API is fairly simple. Create a validator by providing a validation schema and/or a sanitizing schema.

    import ProxyValidator from 'proxy-validator';
     
    // The schema props correspond to the props that will be validated.
    const validators = {
      // Define a set of rules to apply for each prop, each rule is formed by a key and a value.
      name: {
        // The key corresponds to a validator function.
        isLength: {
          // The value can be either an object, containing options and an errorMessage...
          options: {
            min: 6
          },
          errorMessage: 'Minimum length 6 characters.'
        },
        // ...or a boolean, in which case the message will be the default one.
        isUppercase: true
      },
      mobile: {
        isMobilePhone: {
          options: 'en-GB',
          errorMessage: 'Invalid mobile number.'
        },
        isAlphanumeric: true
      }
    };
     
    const sanitizers = {
      // As with the validation, the sanitizing schema is formed by a a key/value pair.
      name: {
        // The key corresponds with the sanitizing function
        trim: true // and the value can be either boolean (use defaults)
      },
      email: {
        normalizeEmail: {
          options: { // ...or a config options object.
            all_lowercase: true
          }
        }
      }
    };
     
    // Creates a validator
    const ContactValidator = ProxyValidator(validators, sanitizers);
     
    // Creates a proxy that will enforce the validator rules.
    const contact = ContactValidator();
     
    contact.name = 'Mike'; // throws errors
    contact.name = ' MICHAEL';
    console.log(contact); // { name: 'MICHAEL' };

    Validators

    The validation is based on the amazing lib validator by chriso. Find the complete list of available validators and sanitizers in here.

    Install

    npm i proxy-validator

    DownloadsWeekly Downloads

    8

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    106 kB

    Total Files

    14

    Last publish

    Collaborators

    • sorodrigo