ak-json-to-joi

1.3.2 • Public • Published

ak-json-to-joi

NPM Module to convert predefined JSON into Joi validation schema dynamically.

Codacy Badge npm version Dependencies npm Downloads

How to install?

NPM

How to use

 
const JoiSchemaBuilder = require('ak-json-to-joi');
let JoiValidationSchema = JoiSchemaBuilder.build(yourJSON);
let result = Joi.validate(yourPayloadJSON, JoiValidationSchema)
 

Supported Features

Types

Use any of these as types of the key

 
string
number
email
array
object
boolean
 

Validations

 
minLength: {integer value}
maxLength: {integer value}
optional: {true / false}
required: {true / false}
regex: {regex pattern}
default: {default value}
 

Sample JSONs

ARRAY JSON

 
{
    "$array": {
        "name":{
            "$type":"string"
        },
        "number":{
            "$type":"number",
            "optional": true
        }
    }
}
 

OBJECT JSON

 
{
    "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"
    }
}
 

Note:


'type' and 'array' key in validation json should be prefixed with '$' symbol
on missing $ symbol your validation might not work.

Contributors

Dependencies (1)

Dev Dependencies (1)

Package Sidebar

Install

npm i ak-json-to-joi

Weekly Downloads

2

Version

1.3.2

License

UNLICENSED

Unpacked Size

12.5 kB

Total Files

6

Last publish

Collaborators

  • arshadkazmi42