hc-storeutils

1.0.4 • Public • Published

storeutils

Do your store functions easily

Overview - Object

Get-allows you to refactor this:
thor && thor.weapon && thor.weapon.stormbreaker
into:
objectutils.get(thor,'weapon.stormbreaker')
Put-allows you to refactor this:
if(!thor.info ) {
thor.info={}
}

if(!thor.info.name){
thor.info.name={}
}
thor.info.name.actorname = "Chris Hemsworth"
into:
objectutils.put(avengers,"thor.info.name.actorname","Chris Hemsworth")
Delete-allows you to refactor this:
if(thor && thor.weapon && thor.weapon.stormbreaker){
    delete thor.weapon.stormbreaker
}
into:
objectutils.delete(thor,'weapon.stormbreaker')

Usage example(s) - Objectutils

get

import {objectutils} from 'hc-objectutils'
var avengers={
    thor:{
        info:{
            name:{
                castname:"Thor",
                actorname:"Chris Hemsworth",

            }
        },
        weapon:{
            stormbreaker:{
                activate:function(status){
                    console.log("Yeah!! its "+(status?"activated":"deactivated"));
                }

            }
        }
    }
}


objectutils.get(avengers,"thor.info.name.actorname");
=>Chris Hemsworth

objectutils.get(avengers,["thor","info","name","actorname"]);
=>Chris Hemsworth

objectutils.get(avengers,"thor.weapon.stormbreaker.activate")(true);
=>"Yeah!! its activated"

objectutils.get(avengers,"ironman.info.name.actoname");
=>undefined

put

This will not change the original object and returns a new object

import {objectutils} from 'hc-objectutils'
var avengers = {
    ironman:{
        info:{
            name:"Tony Stark"
        }
    }
}

object.put(avengers,"ironman.info.name.actorname","Robert Downey")
=> {
ironman:{
        info:{
            name:{
                actorname:"Robert Downey"
            }
        }
    }
}

object.put(avengers,"ironman.info.name.actorname",function(val){ return val+" Jr"})
=> {
ironman:{
        info:{
            name:{
                actorname:"Robert Downey Jr"
            }
        }
    }
}

object.put(avengers,["ironman","info","name","castname"],"Tony Stark")
=> {
ironman:{
        info:{
            name:{
                actorname:"Robert Downey Jr",
                castname:"Tony Stark"
            }
        }
    }
}

/*
console.log(avengers);
=> {
       ironman:{
           info:{
               name:"Tony Stark"
           }
       }
   }
*/

delete

This will not change the original object. This will delete a key from object and returns a new object

import {objectutils} from 'hc-objectutils'
var avengers={
    thor:{
        info:{
            name:{
                castname:"Thor",
                actorname:"Chris Hemsworth"

            }
        },
        weapon:{
            stormbreaker:{
                activate:function(status){
                    console.log("Yeah!! its "+(status?"activated":"deactivated"));
                }

            }
        }
    }
}

/*
If the path exists in the given object,then it will delete the key,which is the path, from the object.
If the path doesn't exists,then it won't do any thing.
*/



objectutils.delete(avengers,"thor.info.name.actorname");

=>{
      thor:{
          info:{
              name:{
                  castname:"Thor"
              }
          },
          weapon:{
              stormbreaker:{
                  activate:function(status){
                      console.log("Yeah!! its "+(status?"activated":"deactivated"));
                  }
  
              }
          }
      }
  }


/*
console.log(avengers);
=> {
       thor:{
           info:{
               name:{
                   castname:"Thor",
                   actorname:"Chris Hemsworth"
   
               }
           },
           weapon:{
               stormbreaker:{
                   activate:function(status){
                       console.log("Yeah!! its "+(status?"activated":"deactivated"));
                   }
   
               }
           }
       }
   }
*/

cloneDeep

This will clone, deeply of any object. ** Note: Don't use this method if object contains any functions **

var avengersClone = objectutils.cloneDeep(avengers)

cloneDeeper

This will clone, deeply of any object

var avengersClone = objectutils.cloneDeeper(avengers)

deepAssign

This will act like Object.assign but its assigning object deeply.

var avengers ={
ironman:{
        info:{
            name:{
                actorname:"Robert Downey Jr",
                castname:"Tony Stark"
            }
        }
    }
};
var assignedObject = objectutils.deepAssign(avengers,{ironman:{info:{name:{actorname:"RDJ"}}}})
console.log(avengers);
=>{
ironman:{
        info:{
            name:{
                actorname:"RDJ",
                castname:"Tony Stark"
            }
        }
    }
}

omit

Omits the given keys and returns the target object

var avengers ={
ironman:"RDJ",
thor:"Chris",
hulk:"Mark"
}
objectutils.omit(avengers,["hulk","ironman"],{})
=>{
  thor:"Chris"
}

extract

Its opposite to omit.It takeout the keys from the object

var avengers ={
ironman:"RDJ",
thor:"Chris",
hulk:"Mark"
}
objectutils.extract(avengers,["hulk","ironman"],{})
=>{
  ironman:"RDJ",
  hulk:"Mark"
}

Usage example(s) - Arrayutils

merge

Merge given params into an array

import {arrayutils} from 'hc-storeutils'

arrayutils.merge(["thor","ironman"],["hulk","captain america"],"captain marvel",{name:"blackpanther"});

=>["thor","ironman","hluk","captain america","captain marvel",{name:"blackpanther"}]

delete

Delete the elements and return a new array

var array = [1,200,3,4,5]

arrayutils.delete(array,200);

=>[1,3,4,5]

arrayutils.delete(array,[1,3]);

=>[200,4,5]

arrayutils.delete(array,(val,index)=>{ return(val%2==0)});

=> [200,4]

objectOmit

Omits the given keys from an array of objects

var array = [{id:1,name:"name1"},{id:2,name:"name2"}]

arrayutils.objectOmit(array,["id"])

=> [{name:"name1"},{name:"name2"}]

objectExtract

Extract the given keys from an array of objects

var array = [{id:1,name:"name1"},{id:2,name:"name2"}]

arrayutils.objectExtract(array,["id"])

=> [{id:1},{id:2}]

Readme

Keywords

none

Package Sidebar

Install

npm i hc-storeutils

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

106 kB

Total Files

78

Last publish

Collaborators

  • _vimal