JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 37212
  • Score
    100M100P100Q148176F
  • License MIT

extend and merge objects, deep or shallow

Package Exports

  • deap
  • deap/shallow

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deap) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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.

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.

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. For nested objects, a deep update will only update existing properties. Shallow updates will replace nested objects entirely.

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

var deap = require('deap/shallow');

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

... the end