Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Mixme is a utility library for deep merging of objects. It allows you to combine multiple objects into one, handling nested properties and arrays gracefully.
Deep Merge
This feature allows you to deeply merge two or more objects. Nested properties are merged recursively.
const mixme = require('mixme');
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { b: { d: 3 } };
const result = mixme.merge(obj1, obj2);
console.log(result); // { a: 1, b: { c: 2, d: 3 } }
Array Merge
This feature allows you to merge arrays within objects. The arrays are concatenated.
const mixme = require('mixme');
const obj1 = { a: [1, 2] };
const obj2 = { a: [3, 4] };
const result = mixme.merge(obj1, obj2);
console.log(result); // { a: [1, 2, 3, 4] }
Custom Merge Function
This feature allows you to provide a custom merge function to define how values should be combined.
const mixme = require('mixme');
const obj1 = { a: 1, b: 2 };
const obj2 = { a: 3, b: 4 };
const customMerge = (a, b) => a + b;
const result = mixme.merge(obj1, obj2, customMerge);
console.log(result); // { a: 4, b: 6 }
Lodash is a popular utility library that provides a wide range of functions for manipulating arrays, objects, and other data types. It includes a `merge` function similar to mixme's deep merge, but also offers many other utilities.
Deepmerge is a library specifically designed for deep merging of JavaScript objects. It is similar to mixme in its core functionality but focuses solely on merging, without additional utilities.
Merge is a simple utility for merging objects. It provides basic deep merge functionality but lacks some of the advanced features and customizability of mixme.
Merge multiple object recursively. The last object takes precedence over the previous ones. Only objects are merged. Arrays are overwritten.
The API is minimalist, pass as many literal objects as you wish, they will all be merged.
mixme({a: '1'}, {b: '2'});
// return {a: '1', b: '2'}
The default function exported is immutable. The source objects won't be altered. Use the mutate
function to enrich an object. The first argument will be enriched:
obj = {a: '1'};
mixme.mutate(obj, {b: '2'});
// obj is now {a: '1', b: '2'}
It is possible to clone a literal object by simply calling mixme
with this object as the first argument. Use the clone
function in case you wish to clone any type of argument such as an array:
source = ['a', 'b']
target = mixme.clone(source)
// target is now a copy of source
Merge an existing object with a second one:
obj1 = { a_key: 'a value', b_key: 'b value'};
obj2 = { b_key: 'new b value'};
result = misc.merge obj1, obj2
assert.eql result, obj1
assert.eql obj1.b_key, 'new b value'
Create a new object from two objects:
obj1 = { a_key: 'a value', b_key: 'b value'}
obj2 = { b_key: 'new b value'}
result = misc.merge {}, obj1, obj2
assert.eql result.b_key, 'new b value'
Clone the repo, install the development dependencies and run the tests:
git clone http://github.com/wdavidw/node-mixme.git .
npm install
make test
This package is developed by Adaltas.
Version 0.1.0
FAQs
A library for recursively merging JavaScript objects
The npm package mixme receives a total of 943,659 weekly downloads. As such, mixme popularity was classified as popular.
We found that mixme demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.