Socket
Book a DemoInstallSign in
Socket

@rimbu/deep

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rimbu/deep

Tools to use handle plain JS objects as immutable objects

latest
Source
npmnpm
Version
2.0.2
Version published
Weekly downloads
2.2K
50.24%
Maintainers
1
Weekly downloads
 
Created
Source

npm version Deno

Licence

@rimbu/deep

Welcome to @rimbu/deep! This package offers powerful tools to handle plain JavaScript objects as immutable objects, making your code more robust and maintainable.

Key Features:

  • Immutable Modification: Use the Patch object for convenient and immutable modifications of simple objects.
  • Pattern Matching: The Match object allows easy pattern matching on plain objects.
  • Nested Value Querying: Easily query nested values with the Path object.
  • Compile-Time Protection: The Immutable type helps create plain objects with compile-time protection against mutation.
  • Flexible Tuples: The Tuple type provides similar functionality to as const but with more flexibility.

Documentation

For complete documentation, please visit the Immutable Objects overview in the Rimbu Docs, or directly explore the Rimbu Deep API Docs.

Try It Out

Experience @rimbu/deep in action! Try Out Rimbu on CodeSandBox.

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/deep

npm:

npm install @rimbu/deep

Bun:

bun add @rimbu/deep

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
  }
}

Replace x.y.z with the desired version.

In this way you can use relative imports from Rimbu in your code, like so:

import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';

Note that for sub-packages, due to conversion limitations it is needed to import the index.ts instead of mod.ts, like so:

import { HashMap } from '@rimbu/hashed/map/index.ts';

To run your script (let's assume the entry point is in src/main.ts):

deno run --import-map import_map.json src/main.ts

Usage

import { patch } from '@rimbu/deep';

console.log(
  patch({
    a: 'a',
    b: { c: 1, d: true },
  })({
    a: 'q',
    b: { c: (v) => v + 1 },
  })
);
// => { a: 'q', b: { c: 2, d: true }}

Author

Created and maintained by Arvid Nicolaas.

Contributing

We welcome contributions! Please read our Contributing guide.

Contributors

Made with contributors-img.

License

This project is licensed under the MIT License. See the LICENSE for details.

Keywords

immutable

FAQs

Package last updated on 16 May 2025

Did you know?

Socket

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.

Install

Related posts