NPM Module to convert predefined JSON into Joi validation schema dynamically.
const JoiSchemaBuilder = require('ak-json-to-joi');
let JoiValidationSchema = JoiSchemaBuilder.build(yourJSON);
let result = Joi.validate(yourPayloadJSON, JoiValidationSchema)
Use any of these as types of the key
string
number
email
array
object
boolean
minLength: {integer value}
maxLength: {integer value}
optional: {true / false}
required: {true / false}
regex: {regex pattern}
default: {default value}
{
"$array": {
"name":{
"$type":"string"
},
"number":{
"$type":"number",
"optional": true
}
}
}
{
"name": {
"original": {
"$type": "string",
"required": true,
"maxLength": 200
},
"nick": {
"$type": "string",
"optional": true,
"default": "arshad"
}
},
"phone": {
"$type": "number",
"required": true
},
"email": {
"$type": "email",
"optional": true
},
"date": {
"$type": "date",
"minDate": "1-1-2017",
"maxDate": "10-05-2018"
}
}
'type' and 'array' key in validation json should be prefixed with '$' symbol
on missing $ symbol your validation might not work.