@rimbu/actor

State management tools to create stateful logic that can be easily integrated in any framework

Usage no npm install needed!

<script type="module">
  import rimbuActor from 'https://cdn.skypack.dev/@rimbu/actor';
</script>

README

@rimbu/actor

This package offers state management tools to create stateful logic that can be easily integrated in any framework.

For complete documentation please visit the Rimbu Docs.

Installation

Yarn/NPM

yarn add @rimbu/actor

or

npm i @rimbu/actor

Deno

Create a file called rimbu.ts and add the following:

export * from 'https://deno.land/x/rimbu/actor/mod.ts';

Or using a pinned version (x.y.z):

export * from 'https://deno.land/x/rimbu/actor@x.y.z/mod.ts';

Then import what you need from rimbu.ts:

import { Actor } from './rimbu.ts';

Because Rimbu uses complex types, it's recommended to use the --no-check flag (your editor should already have checked your code) and to specify a tsconfig.json file with the settings described below.

Running your script then becomes:

deno run --no-check --config tsconfig.json <your-script>.ts

Usage

import { Actor, Obs } from '@rimbu/actor';

const obs = Obs.create({ count: 0, changes: 0 });

const actor = Actor.create(obs, {
  increase() {
    obs.patchState({ count: (v) => v + 1, changes: (v) => v + 1 }),
  }
  decrease() {
    obs.patchState({ count: (v) => v - 1, changes: (v) => v + 1 }),
  }
});

console.log(actor.state);
// => { count: 0, changes: 0 }
actor.increase()
actor.increase()
actor.decrease()
console.log(actor.state)
// => { count: 1, changes: 3 }

Author

Arvid Nicolaas

Contributing

Feel very welcome to contribute to further improve Rimbu. Please read our Contributing guide.

Contributors

Made with contributors-img.

License

Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas.

See LICENSE for more information.