Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/7c/autovalidate
small but well-tested library for input validation for like express or any other input from users
https://github.com/7c/autovalidate
Last synced: about 1 month ago
JSON representation
small but well-tested library for input validation for like express or any other input from users
- Host: GitHub
- URL: https://github.com/7c/autovalidate
- Owner: 7c
- Created: 2022-02-14T17:58:28.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-05T15:25:39.000Z (10 months ago)
- Last Synced: 2024-05-05T20:22:53.450Z (8 months ago)
- Language: JavaScript
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 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: '[email protected]'
}, 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