Skip to content

trapcodeio/abolish

Repository files navigation

Abolish

A Javascript object validator for custom validations

Documentation: Abolish Documentation
Playground: Abolish Playground

Basic Example

const {Abolish} = require('abolish');

const abolish = new Abolish();

// Use abolish email validator
const EmailValidator = require('abolish/validators/string/email');
abolish.addValidator(EmailValidator);

// Add Custom Validtor
abolish.addValidator({
  name: 'addProtocol',
  validator: (url, option, {modifier}) => {
    // Check if url does not have required protocol
    if (url.substring(0, option.length) !== option) {
      // Add protocol
      modifier.setThis(`${option}://${url}`)
    }
    return true
  }
});

// Object to validate
const form = {
  email: '[email protected]',
  username: 'john_doe',
  age: 18,
  url: 'wildstream.ng'
};

const [error, validated] = abolish.validate(form, {
  $: 'required|typeOf:string', // $ or '*' is considered as wildcard
  email: 'isEmail',
  username: '*',
  age: 'typeOf:number|max:20',
  url: 'addProtocol:http'
});

console.log({form, validation: {error, validated}});

Result

{
  form: {
    email: '[email protected]',
    username: 'john_doe',
    age: 18,
    url: 'wildstream.ng'
  },
  validation: {
    error: null,
    validated: {
      email: '[email protected]',
      username: 'john_doe',
      age: 18,
      url: 'http://wildstream.ng'
    }
  }
}

About

A smart blazing fast javascript variable validator.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published