1.1.3 • Published 2 months ago

@7c/autovalidate v1.1.3

Weekly downloads
-
License
ISC
Repository
github
Last release
2 months ago

autovalidate

small but well-tested library for input validation

Installation

npm i https://github.com/7c/autovalidate --save

Features

  • custom validator
  • custom types
  • required / optional keys
  • multiple type support
  • length support for string,arrays(items),object(keycount)
  • min,max support for number

Types

Custom Types

ip4,ip6,url,email,hostname

Basic Types

string,boolean,number,array,object

validateParameters(inputObject,configuration)

this function takes an input object such as req.body or req.params or any Javascript Hash Object. This function throws an exception in case the configuration is troublesome. This will avoid you as developer from mistakes. Since the configuration is constant, you do not expect an exception at production.

const  { validateParameters } = require('@7c/autovalidate')
// OR
import { validateParameters } from '@7c/autovalidate'

let configuration = [
    { key: 'token', type: ['string'] },
    { key: 'ip', type: ['ip4'] },
    { key: 'from', type: ['email'] },
    {
        key: 'PayerID', type: ['string'],
        length: [3, 64],
        required: false,
        default: 'NONE'
    },
    {
        key: 'uuid', type: ['string'],
        required: true,
        validator: (v) => validUUID(v)
    },
    {
        key: 'optional', type: ['string', 'boolean'],
        required: false,
        default: false
    },
    {
        key: 'theid', type: ['number'],
        min: 1,
        required: false,
        default: false
    }
]
let response = validateParameters({
    token: 'validToken',
    ip: '1.2.3.4',
    email: 'test@gmail.com'
}, configuration )

if (response.validated) {
    console.log(`sucess`)
} else {
    console.log(`validation has failed:`,response.issues)
}

response

the response is a structure which has 3 properties: validated:bool,issues:[],values:{}

validation failed

if validation has failed then you will have validated set to false, issues array will contain explanation why the validation has failed and values object will be empty

{
  validated: false,
  issues: [ "'from' is required", "'uuid' is required" ],
  values: {}
}

validation succeed

then validated will be true, issues array will be empty and values object contains corresponding values

1.1.3

2 months ago

1.1.1

3 months ago

1.1.2

3 months ago

1.0.7

8 months ago

1.0.6

8 months ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago