extendify

1.0.0 • Public • Published

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.

Package Sidebar

Install

npm i extendify

Weekly Downloads

1,641

Version

1.0.0

License

MIT

Last publish

Collaborators

  • bigshai