object-projection

1.0.3 • Public • Published

Object-projection

object-projection is a simple validation function to validate objects base on allowed ignore rule

Installation

npm install object-projection

Usage

validation

validating objects

    var {objectProj} = require('object-projection');
 
    var input ={
        key1: 'string',
        key2: 'any',
        key3:{
            key4:'any',
            "key5.key6":{
                key7:'any'
            }
        }
    }
 
    var validation = {
        key2:1,
        "key3.key5.key6.key7": true,
        //or
        "key3.key5":{
            "key6.key7":1
        }
    }
    var result = objectProj(input, validation2);
    /**
        result = {
            key2: 'any',
            key3:{
                key5:{
                    key6":{
                        key7:'any'
                    }
                }
            }
        }
     * */
 
    //or
    var validation2 = {
        key2:0,
        "key3.key5":0
    }
 
    var result = objectProj(input, validation2);
    /**
        result = {
            key1: 'string',
            key3:{
                key4:'any',
            }
        }
     * */
 

keep in mind that only allowing or only ignoring keys at one validation is possible

sorting nested objects

sorting nested object(by keys) or arrays

    var {objectSort} = require('object-projection');
    var input = {
      d: 1,
      c: { b: [1, "a", "b"], a: 1 },
      b: "sss",
      a: [{ b: [1, "g", "i"], a: 3 }, { b: [1, "g", "i"], a: 2 }]
    }
    var result = objectSort(input)
    // {
    // "a":[{"a":2,"b":["g","i",1]},{"a":3,"b":["g","i",1]}],
    // "b":"sss",
    // "c":{"a":1,"b":["a","b",1]},
    // "d":1
    // }

comparing nested arrays or objects

compaire nested array and object

    var {objectCompare} = require('object-projection');
    var input1 = {
      d: 1,
      c: { b: [1, "a", "b"], a: 1 },
    }
    var input2 = {
        c: { a: 1 ,b: [1, "a", "b"]},
        d: 1,
    }
    var result = objectCompare(input1,input2)
    //if true returns input1 else returns null
    // {
    //   d: 1,
    //   c: { b: [1, "a", "b"], a: 1 },
    // }

flattening objects

make nested objects to single layer object or vice versa

var { objToFlat, flatToObj } = require("object-projection");
 
var input = {
  key1: "any",
  key2: {
    "key3.key4": {
      key5: {
        key6: "any"
      }
    },
    key7: "any"
  }
};
 
var result = objToFlat(input);
/*
        result = {
            key1:'any',
            "key2.key3.key4.key5.key6":'any',
            "key2.key7":'any'
        }
    }
    */
 
var result2 = flatToObj(result);
/*
        result = {
            key1:'any',
            key2:{
                key3:{
                    key4:{
                        key5:{
                            key6:'any'
                        }
                    }
                },
                key7:'any'
        }
    }
    */

Dependents (1)

Package Sidebar

Install

npm i object-projection

Weekly Downloads

2

Version

1.0.3

License

ISC

Unpacked Size

7.69 kB

Total Files

3

Last publish

Collaborators

  • babak.zarrinbal