0.9.0 • Published 2 years ago

storeon-connect v0.9.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

storeon-connect

build npm version minzip

A tiny connector for observes changes in Storeon

How to use

npm i storeon storeon-connect
#or
yarn add storeon storeon-connect

Example

store.js

import { createStoreon } from 'storeon';

const count = (store) => {
  // Initial state
  store.on('@init', () => ({ count: 0 }));
  // Reducers returns only changed part of the state
  store.on('increment', ({ count }) => ({ count: count + 1 }));
};

export const store = createStoreon([count]);
import { storeonConnect } from 'storeon-connect';
import { store } from './store.js';

const { getState, setState, dispatch, connect } = storeonConnect(store);

const output = document.querySelector('#output');
const button = document.querySelector('#button');

// The callback function will be run on setup
// and each time when property "count" would change.
connect('count', ({ count }) => {
  output.textContent = `${count}`;
});

button.addEventListener('click', () => {
  // Emit event
  dispatch('increment');
});

API

storeonConnect

const { getState, setState, dispatch, connect } = storeonConnect(store);

getState

Returns an object that holds the complete state of your app.

const state = getState();

Syntax

function getState(): object

setState

Set partial state. Accepts an object that will assign to the state.

setState({ xyz: 123 });

Syntax

function setState(data: object): void

dispatch

Emits an event with optional data.

dispatch('event/type', { xyz: 123 });

Syntax

function dispatch(event: string, data?: any): void

connect

Connects store state by property keys. It will return the function disconnect from the store.

const disconnect = connect('key', (state) => { });

disconnect();

You can connect for multiple keys, the last argument must be a function.

connect('key1', 'key2', (state) => { });

Runs callback function once.

connect((state) => { });

Syntax

function connect(...args: [...keys: string[], handler: ConnectHandler]): Disconnect

type ConnectHandler = (state: object) => void | Promise<void>

type Disconnect = () => void

License

MIT

0.9.0

2 years ago

0.8.0

3 years ago

0.7.1

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.5.0

3 years ago

0.4.0

3 years ago

0.1.0

3 years ago