0.0.2 • Published 6 years ago

@ealvarez/js-model-validator v0.0.2

Weekly downloads
3
License
MIT
Repository
-
Last release
6 years ago

Etools - Javascript Model Validator

Nodejs tool to validate each key/property of object/model.

Table Of Contents

Quick Start

Follow the next steps to install this module into your nodejs app.

  1. Install the NPM module

    npm install --save @ealvarez/js-model-validator
  2. Create a JSON config file my.config.json.

    {
        "fillWithDefaults": false,
        "keys": {
            "name": {
                "required": true,
                "type": "string",
                "default": ""
            },
                "lastname": {
                "required": false,
                "type": "string",
                "default": ""
            },
            "phone": {
                "required": true,
                "type": "number",
                "default": ""
            }
        }
    }
  3. Add module and config to your.file.js.

    var modelConfig = require('./my.config.json');
    var validate = require('@ealvarez/js-model-validator');
  4. Add object we want to validate and call function.

    var modelConfig = require('./my.config.json');
    var validate = require('@ealvarez/js-model-validator');
    var personObj = {
        name: 'John',
        lastname: 'Wick',
        age: 55,
        job: 'driver'
    };
    
    var validationResponse = validate(personObj, modelConfig);
    console.log(validationResponse);
    /* this should log:
    {
        valid: false,
        neededKeys: [ 'phone' ],
        extraKeys: [ 'age', 'job' ],
        wrongTypeKeys: [],
        model: {
            name: 'John',
            lastname: 'Wick'
        }
    }
    */

Arguments

This are the arguments you need to pass to the validate function.

ArgumentPositionVar typeRequired?DefaultsDescription
JS/JSON obj to validate1objectyes{}This is the JSON or model we want to analize/validate
Config object2objectyesnoneThis is the config obj we will use to validate our JSON or model.

Function response

Response object:

{
    "valid": true,
    "neededKeys": [],
    "extraKeys": [],
    "wrongTypeKeys": [],
    "model": {}
}
PropertyVar typeDescription
validbooleanIndicates if the model that we passed is either valid or not.
neededKeysarrayList of required keys that where not found in the model/object.
extraKeysarrayList of extra keys found in the model/object. We know that are "extra" because we didn't list them in the config object.
wrongTypeKeysarrayList of keys that had didn't match the variable type as specifies in the config object.
modelarrayCleaned model.

NPM Commands

npm run test    ~ Runs unit tests and code coverage
npm run demo    ~ Runs demo app

Status

Contributing

Thanks for creating this tool even better!, please clone this repo and create a PR.