Deepdash
Deep tree-traversal methods for Lodash and plain JavaScript objects
Repository Health
Technical Analysis
Deepdash extends Lodash with a family of “Deep” methods — eachDeep, filterDeep, findDeep, mapDeep, reduceDeep, pickDeep, omitDeep, keysDeep, and more — for traversing and transforming arbitrarily nested objects, arrays, and trees. It can mix its methods directly into an existing Lodash instance, or run standalone without a Lodash dependency at all.
Each traversal callback receives a rich context object (parent stack, current path, depth) so consumers can implement circular-reference detection, tree-specific childrenPath iteration, or leaves-only traversal without writing custom recursion.
What You Get
- Deep equivalents of core Lodash methods: eachDeep, filterDeep, mapDeep, reduceDeep, someDeep, findDeep, pickDeep, omitDeep, keysDeep, pathToString, and more
- Three consumption modes: mixin into an existing Lodash instance, cherry-pick individual methods without mutating Lodash, or use the fully standalone bundle with no Lodash dependency
- A rich per-callback context object exposing parent stack, current path, and depth for building custom tree logic
- Built-in circular-reference detection and a dedicated tree/
childrenPathtraversal mode for hierarchical data structures - Separate
deepdash-espackage providing the same API as native ES modules forlodash-esconsumers
Common Use Cases
- Filtering deeply nested JSON API responses down to matching subsets while preserving structure
- Iterating a tree-shaped UI state (e.g. nested comments, file trees, org charts) without writing manual recursive functions
- Redacting or omitting sensitive fields at any depth of an arbitrarily nested configuration object
- Collecting all matching paths in a deeply nested object for validation or diffing tools
Under The Hood
Architecture: Deepdash is organized as one small module per method (eachDeep.js, filterDeep.js, pickDeep.js, etc.), each paired with an add*.js file that mixes the method into a passed-in Lodash instance and a get*.js file that returns the method as a standalone function bound to that instance; deepdash.js is the aggregate entry point that mixes in every method at once, while standalone.js re-exports cherry-picked methods pre-bound to a bundled, minimal subset of Lodash so the package works without a full Lodash dependency. Tech Stack: plain JavaScript (99.8% of the codebase) with a parallel es/ build for ES module consumers and a browser/ UMD bundle for <script>-tag usage via jsDelivr/CDN; the sibling deepdash-es npm package targets lodash-es specifically. Code Quality: the project maintains a test/ directory with unit tests plus Coveralls coverage reporting and Snyk vulnerability scanning wired into its README badges, and uses commitlint to enforce conventional commit messages; however, the repository has had very low commit activity in recent years, with the last meaningful release some time ago. API Design: each traversal method mirrors its flat Lodash counterpart’s argument order and callback signature but adds a fourth context argument (parent stack, path, depth, childrenPath option), which keeps the learning curve low for existing Lodash users while extending naturally to tree-shaped data; documentation lives on a dedicated docs site (deepdash.io) with per-method interactive examples.
Used by 2 apps in this directory
Amplication
Developer Tools · AI Code Assistants · Automation
Create production-ready backend services with your organization's standards baked in — generating NestJS, Prisma, and GraphQL code that you own and control.
Bigcapital
Invoicing Finance
Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.