Skip to content

crimx/val-state

Repository files navigation

Build Status npm-version Coverage Status minified-size

Commitizen friendly Conventional Commits code style: prettier

State management with value-enhancer.

Install

npm add val-state value-enhancer

Usage

import { createStore } from "val-state";

const store$ = createStore({
  count: 0,
});

store$.subscribe(state => {
  console.log(state);
});

Create store with actions:

import { createStore } from "val-state";

const store$ = createStore(
  {
    count: 0,
  },
  state$ => ({
    increment: (step = 1) => {
      state$.set({ count: state$.value.count + step });
    },
  })
);

store$.subscribe(state => {
  console.log(state);
});

store$.act.increment();

Assign actions to normal val:

import { val } from "value-enhancer";
import { assignActions } from "val-state";

const state$ = val({ count: 1 });

const store$ = assignActions(state$, {
  increment: (step = 1) => {
    state$.set({ count: state$.value.count + step });
  },
});

assert(store$ === state$);

store$.act.increment();

About

State management with value-enahncer

Resources

License

Stars

Watchers

Forks

Packages

No packages published