Socket
Socket
Sign inDemoInstall

proxy-validator

Package Overview
Dependencies
1
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    proxy-validator

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


Version published
Maintainers
1
Install size
344 kB
Created

Readme

Source

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.

Keywords

FAQs

Last updated on 22 Jul 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc