Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Micro npm Packages
  3. deep-assign

deep-assign

MITJavaScript

Recursive Object.assign() for deep merging JavaScript objects (deprecated).

GitHubGitHub
246 stars34 forks0 contributors

What is deep-assign?

Deep-assign is a deprecated JavaScript utility library that provides recursive object merging functionality. It extends the native `Object.assign()` method to handle nested objects, allowing developers to deeply merge multiple source objects into a target object. The project solves the problem of shallow object assignment when working with complex nested data structures.

Target Audience

JavaScript and Node.js developers who need to merge nested configuration objects, combine complex data structures, or work with deeply nested objects in their applications.

Value Proposition

Developers chose deep-assign for its simple API that mirrors `Object.assign()` while providing deep merging capabilities. Its main advantage was being a lightweight, focused solution specifically designed for recursive object assignment before better alternatives became available.

Overview

[DEPRECATED] Recursive Object.assign()

Use Cases

Best For

  • Merging nested configuration objects in JavaScript applications
  • Combining complex data structures with multiple levels of nesting
  • Deep cloning objects with recursive property assignment
  • Handling object merging in build tools or configuration management
  • Working with deeply nested API response data
  • Replacing shallow Object.assign() in legacy codebases

Not Ideal For

  • New projects requiring actively maintained dependencies for security and updates
  • Applications needing advanced merging features like array handling or custom merge strategies
  • Teams with strict compliance policies that prohibit deprecated libraries in production
  • High-performance scenarios where optimized libraries like lodash.merge offer better speed

Pros & Cons

Pros

Simple API

Mirrors the native Object.assign() method, making it easy to adopt for developers familiar with standard JavaScript object assignment, as shown in the usage example with a similar function signature.

Recursive Merging

Deeply merges nested properties by recursively assigning source objects to target, demonstrated in the example where {a: {b: 0}} is combined to produce {a: {b: 1, c: 3}}.

Multiple Source Support

Accepts multiple source objects with later sources overwriting previous ones, providing flexibility similar to Object.assign(), as indicated in the function description.

Enumerable Properties Only

Copies only own enumerable properties, adhering to JavaScript conventions and ensuring predictable behavior, as stated in the feature list for enumerable property handling.

Cons

Deprecated Status

Explicitly marked as deprecated in the README, with the author stating version 2 has unresolved issues and no time to fix it, making it unsuitable for any new development.

No Active Maintenance

Lacks ongoing updates, bug fixes, or support, posing risks for long-term project stability and security, as the author recommends alternatives instead.

Limited Feature Set

Focused only on deep assignment without handling edge cases like arrays or non-enumerable properties, which alternatives like lodash.merge address more comprehensively.

Frequently Asked Questions

Quick Stats

Stars246
Forks34
Contributors0
Open Issues0
Last commit5 years ago
CreatedSince 2015

Tags

#object-manipulation#npm-package#deprecated#nodejs#utility-library#node-module#javascript

Built With

J
JavaScript
N
Node.js

Included in

Micro npm Packages4.6k
Auto-fetched 1 day ago

Related Projects

deep-object-diffdeep-object-diff

Deep diffs two objects, including nested structures of arrays and objects, and returns the difference. ❄️

Stars1,140
Forks97
Last commit2 years ago
stringify-objectstringify-object

Stringify an object/array like JSON.stringify just without all the double-quotes

Stars324
Forks43
Last commit8 months ago
get-valueget-value

Use property paths (`a.b.c`) get a nested value from an object.

Stars295
Forks22
Last commit1 year ago
set-valueset-value

Set nested properties on an object using dot-notation.

Stars277
Forks42
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub