sn-donbenjamin / deep-confluence

Merge objects—deeply 🖤, deep confluence is a suuuuper small JavaScript utility function for merging objects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deep Confluence

Deep Confluence codecov

A JavaScript Utility Method to deeply merge objects

Where other deep merge utilities might take a bit to groc for the simple function you desire, you can view Deep Confluence's few lines of code and feel at ease saying "yes" OR "no"—but, say "yes".


Install

npm i deep-confluence -D

Problem: there are 2 lonely deep objects

import deepConfluence from 'deep-confluence'

const lonelyObj1 = {
  broken: true,
  alone: true,
  complex: {
    cats: true,
    dogs: false,
  },
}
const lonelyObj2 = {
  broken: false,
  alone: false,
  complex: {
    noPets: true,
    likesCats: true,
  }
}

Fix: Deep Confluence

Invoke Deep Confluence and merge two lonely objects deeply into 1. đź–¤


const youreNotAlone = deepConfluence(lonelyObj1, lonelyObj2)

Which outputs

{
  'alone': false,
  'broken': false,
  'complex': {
    'cats': true,
    'dogs': false,
    'likesCats': true,
    'noPets': true
  }
}

Examples

Here's a CodePen. Take it Deep Confluence for a test drive. Feel free to use the example to point out issues or request features.


Note: Deep Confluence's goal is simplicity!

  • If you have lodash, and don't mind a little size, use _.merge!
  • If you want a utility smaller than _.merge but more supportive than deep-confluence use deepMerge.

Deep confluence is a "try it first, don't make you think about it" utility.

About

Merge objects—deeply 🖤, deep confluence is a suuuuper small JavaScript utility function for merging objects

License:MIT License


Languages

Language:TypeScript 100.0%