deap / 1.0.0 last updated 2 years ago created on May 8th 2013

Install

npm install --save deap

Clone

git clone git@github.com:selfcontained/deap.git

dependencies

No dependencies listed.

maintainers

bmharris
prestaul

versions 7 total

1.0.0 2 years ago bmharris
0.2.2 2 years ago bmharris
0.2.1 2 years ago bmharris
0.2.0 3 years ago bmharris
0.1.2 3 years ago bmharris
0.1.1 3 years ago bmharris
0.1.0 3 years ago bmharris
32790 Downloads yesterday.

readme

Build Status Coverage Status

===

browser support

deap

extend and merge objects, deep or shallow, in javascript

installation

npm install deap
var deap = require('deap');

browser usage

deap assumes es5, so we recommend using an es5 shim for older browsers. Browserify is also recommended as a means to use this module client-side, but other module loaders for browsers will work with deap as well if you shim it.

available functions

  • deap() and deap.extend() - deep extend
  • deap.merge() - deep merge
  • deap.update() - deep update
  • deap.extendShallow() - shallow extend
  • deap.mergeShallow() - shallow merge
  • deap.updateShallow() - shallow update
  • deap.clone() - deep clone

deap() and deap.extend()

Deep extend. Copy all the properties from one object onto another, cloning objects deeply.

Takes n number of arguments, modifies the first argument and returns it.

1
2
3
4
var a = { name: 'Joe' };

deap.extend(a, { age: 26 }); // returns: a => { name: 'Joe', age: 26 }
deap.extend({}, someObj); // clone someObj

deap.merge()

Deep merge. Copy properties from one object to another, not replacing existing properties.

Takes n number of arguments, modifies the first argument and returns it.

1
2
3
var a = { name: 'Joe', address: { number: 1234 };
deap.merge(a, { name: 'Jack', age: 26, phone: '555-555-5555', address: { number: 4321, street: 'University Blvd' });
// returns: a => { name: 'Joe', age: 26, phone: '555-555-5555', address: { number: 1234, street: 'University Blvd' }}

deap.update()

Deep update. Fill an object's existing properties from another object.

Takes n number of arguments, modifies the first argument and returns it.

var a = { name: 'Joe', phone: '' };
deap.update(a, { age: 26, phone: '555-555-5555' }); // returns: a => { name: 'Joe', phone: '555-555-5555' }

shallow only

If you prefer a shallow-only instance of deap you can require it specifically

1
2
3
4
5
6
var deap = require('deap/shallow');

deap() && deap.extend(); // shallow extend
deap.merge(); //shallow merge
deap.update(); //shallow update
deap.clone(); // deep clone

... the end

Resolving all dependencies.. This could take a while as our cache is not yet fully warmed up.