Validate object data in JS based on a given data model
npm install node-data-validator !License   !Build
npm i node-data-validator
`
or - script tag for the browser
`html
`Usage
$3
with Common JS
`js
/ Import Validator /
const {Validator} = require("node-data-validator");
`
or - TypeScript Import
`js
/ Import Validator /
import {Validator} from "node-data-validator";
`
$3
`js
/*
IMPORTS
*/
const {Validator} = require("./Validator");// Create test data
const input = {
name: 'John',
age: 23,
email: "john@example.com",
address: {
street: "Main Street",
city: "New York",
zip: 24654
},
userIDs: [128923891, 238923, 234324, 234234, 23623456]
}
// Create model
const model = {
name: String,
age: Number,
email: String,
address: {
street: String,
city: String,
zip: Number
},
userIDs: [Number],
}
// Output result
console.log(Validator(input, model));
`$3
Working with DetailedValues is exactly as working with primitives. Firstly, import DetailedValues together with the Validator Function.
with Common JS
`js
/ Import Validator /
const {Validator, DetailedValue} = require("node-data-validator");
`
or - TypeScript Import
`js
/ Import Validator /
import {Validator, DetailedValue} from "node-data-validator";
`Then specify your model as following:
`js
// Create model
const model = {
name: new DetailedValue(String, {required: true, min: 4}),
age: Number,
email: String,
address: {
street: String,
city: String,
zip: Number
},
userIDs: [Number],
}
`
You can use the Type declaration in the DetailedValue exactly like the rest of the model, so things like [[Number]] and other shinanigans work fine.A DetailedValue has the following options:
| Option | Type | Description | Values | Default |
|----------|---------|------------------------------------|-------------------|---------|
| required | boolean | Is the value required? |
true or false | true |
| min | number | Min length of the value. | Number | null |
| max | number | Max length of the value. | Number | null |
| isEmail | boolean | Validate if the value is an email. | true or false | false |$3
If you specify an array like userIDs: [Number] only the first data type - in this case Number` - will be verified against the data array.