immersible

1.1.3 • Public • Published

"Buy Me A Coffee"

Immersible

Immersible is my own version of Immer. It is more restrictive and has, in my opinion, a more convenient API. You can also subscribe to changes with my library.

Installation

First, we need to install immersible:

npm install --save immersible

And then we import immersible where we want to use it.

import { Immersible } from 'immersible'

Usage

Usage is quite simple:

const todo = new Immersible([
    {
        title: "Learn TypeScript",
        done: true
    },
    {
        title: "Try Immer",
        done: false
    }
]);

todo.produce((draft) => {
  draft[1] = true
  draft.push({ title: "Tweet about it", done: false })
})

We can access baseState or, if mutated, nextState way simple:

console.log(todo.state)

Differently than with Immer, we can set setAutoFreeze and setUseStrictShallowCopy by object, and not globally:

todo.setAutoFreeze(false)
todo.setAutoFreeze(true)

We can also subscribe/unsubscribe to changes:

const subscriptionId = todo.subscribe((nextState) =>
  console.log(nextState)
);

todo.produce((draft) => {
  draft[2] = true
})

todo.unsubscribe(subscriptionId)

Package Sidebar

Install

npm i immersible

Weekly Downloads

1

Version

1.1.3

License

GNU v3

Unpacked Size

60.4 kB

Total Files

16

Last publish

Collaborators

  • brugarolas