extendify

Deep extend with customizable behavior for Node.js

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
extendify
2081.0.07 years ago9 years agoMinified + gzip package size for extendify in KB

Readme

Logo

Deep extend with customizable behavior for Node.js.

"Extedify" is a lightweight wrapper over lodash's _.merge (like a deep _.extend) with customizable handling of arrays, booleans, numbers and strings.
(By default, extedify will behave exactly like lodash's _.merge.)

Installation

npm install extendify

Usage

var extendify = require('extendify');
myExtend = extendify({
    // options
});

Options

  • inPlace – Override the 'source' with the result?
- true (*default*)
- false
  • isDeep – Use deep extend?
- true (*default*)
- false
  • arrays – How to handle arrays?
- replace (*recommended*)
- concat
- merge (*default*)
- or
- and
  • booleans – How to handle booleans?
- replace (*default*)
- concat
- or
- and
  • numbers – How to handle numbers?
- replace (*default*)
- concat
- or
- and
  • strings – How to handle strings?
- replace (*default*)
- concat
- or
- and

Example

Let's get an .extend function that
  • returns a copy/clone,
  • replaces arrays,
  • supports nested objects (also known as deep extends).

_.extend = extendify({
    inPlace: false,
    isDeep: true,
    arrays : 'replace'
});

object1 = {
    a:{
        list: [1, 2]
    },
    b: 4
};

object2 = {
    a:{
        list: [3]
    }
};

var result = myExtend(object1, object2);
/*
{
    a: {
        list: [3]
    },
    b: 4
}
*/

More examples are available in the 'examples.js' file.

Contributions

Your feedback is welcome, email me at
reshef.shai@gmail.com.