1.1.0 • Published 4 years ago

shouldbe-schema-validator v1.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Shouldbe

Object schema validator for Javascript.

Introduction

Shouldbe allow you to create the Object schemas to validate javascript Object. it will simplify lots of manual conditions to validate data.

Install

npm i --save shouldbe-schema-validator

How to import

import Shouldbe from 'shouldbe-schema-validator';

OR

const Shouldbe = require('shouldbe-schema-validator');

Example

// Details Object 

const details = {
    firstName: 'john',
    lastName: 'snow',
    age: 28,
    address: {
        line1: 'Winterfell',
        line2: 'Wall',
        country: 'Seven kingdom'
    }
};

// Schema Object

const schema = {
    firstName: () => Shouldbe.string().min(3).max(15).required(),
    lastName: () => Shouldbe.string().min(3).max(15).required(),
    age: () => Shouldbe.number().min(30).required(),
    address: () => Shouldbe.object().items({
        line1: () =>Shouldbe.string(),
        line2: () =>Shouldbe.string(),
        country: () =>Shouldbe.string(),
    })
}

const result = Shouldbe.SyncValidate(details, schema);

Remember Property Name of Schema must be same as Details Object.

Output

{ 
    firstName: { value: 'john', errors: [] },
    lastName: { value: 'snow', errors: [] },
    age:{ value: 28, errors: [ 'value length must be greater than 30' ] },
    address: { value: 'Seven kingdom', errors: [] },
    isValid: false 
}

Multiple schema (OR)

const details = {
    phone: '1234567890',
};

const schema = {
    phone: [
        () => Shouldbe.number().phone(10),
        () => Shouldbe.string().phone(10)
    ],
}

In above example we provide multiple schemas to phone attribute, It means phone number can be String or Number

Options

RulesDescription
stringThe value must be String
numberThe value must be Nubmer (Integer)
arrayThe value must be an Array
objectThe value must be an Object
minThis will check minimum length of Array, String and Object, and value of Number (Integer)
maxThis will check maximum length of Array, String and Object, and value of Number (Integer)
alphanumThe value must be alphanumeric
phoneThe value must be number and given length long .phone(10)
urlThe value must be valid url
regexThe value must match given pattern .regex('^[0-9]*$')
emailThe value must be valid Email id
trimThe value must not have leading or trailing whitespace
requiredThe value must not have blank
allowThe value can be given value .allow(null)
itemsAccept nested schema for Object and Array
enumThe value must in given collection .enum(['cat', 'dog'])

Methods

// Synchronous call

    Shouldbe.SyncValidate(detailsObject, SchemaObject);

// Asynchronous call

    Shouldbe.AsyncValidate(detailsObject, SchemaObject);