Skip to content

Latest commit

 

History

History
56 lines (39 loc) · 937 Bytes

README.md

File metadata and controls

56 lines (39 loc) · 937 Bytes

hobby-redux

Small configuration state management like Redux. It's a hobby.

Usage

import { Store } from './store';

type CounterAction = { type: 'INCREMENT' } | { type: 'DECREMENT' };

const reducer = (state: number = 0, action: CounterAction) => {
  switch (action.type) {
    case 'INCREMENT':
      return state + 1;
    case 'DECREMENT':
      return state - 1;
    default:
      return state;
  }
};

const store = new Store(reducer);

const incrementAction = { type: 'INCREMENT' };
const decrementAction = { type: 'DECREMENT' };

store.subscribe(fn);

function fn() {
  console.log(store.getState());
}

// Add to the numbers + 1
store.dispatch(incrementAction); // => 1
store.dispatch(incrementAction); // => 2

// Subtract numbers -1
store.dispatch(decrementAction);// => 1

test

$ npm run test

build

$ npm run build

Author

@hiro08gh