Giter VIP home page Giter VIP logo

ak-json-to-joi's Introduction

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

ak-json-to-joi's People

Contributors

aacgn avatar agarwal-akash avatar anishaswain avatar arshadkazmi42 avatar beasyit avatar blancasnz avatar championpaddler avatar dadonnell avatar dhoeric avatar easterncalculus avatar eduardosm7 avatar ejiro-edwin avatar iamwebwiz avatar ipshitac avatar iqlaas avatar kachamukabe avatar mohammadobaid1 avatar nvs16 avatar roopbiswas avatar rupeshiya avatar shahsheel avatar souravinsights avatar swapsha96 avatar the-lady-developer avatar timikcool avatar versavale avatar viacheslav-ignatov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.