Skip to content
This repository has been archived by the owner on Apr 20, 2023. It is now read-only.

yowainwright/deep-confluence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Confluence

Deep Confluence Typed with TypeScript codecov npm version unpkg

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".

Note 👋

JavaScript has native support for deep merging now (but only in certain browsers).


Install

pnpm 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.


Simplicity

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.


Known Issues

Deep Confluence does simple Array diffing using filter to get rid of duplicate items. However, if there is an array of Objects, the arrays are merged but duplicate objects are not removed. That can be done by you with custom filtering at your leisure.

About

A small utility function for merging objects deeply 🖤

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published