@react-nano/tsrux
TypeScript icon, indicating that this package has built-in type declarations

0.13.0 • Public • Published

@react-nano/tsrux

License Minified + gzipped size NPM version Stars Watchers

@react-nano/tsrux enables you to reduce the redux boilerplate code you usually write to define your action creators, reducers, etc. and even gain type-safety in the process!

The name stands for type-safe redux, aside from the bloody obvious: TypeScript Rocks!

Why Use @react-nano/tsrux?

  • Extremely lightweight: 300 byte vs 7.7 kilobyte for deox.
  • Deadsimple to use
  • No dependencies!
  • Fully documented
  • Automated unit- and type tests
  • Liberal license: zlib/libpng

Example: Actions Creators

// No payload:
export const fetchTodos = actionCreator("TODOS/FETCH");
// With payload:
export const addTodo = actionCreator("TODOS/ADD", (label: string) => ({ label }));
// With payload and metadata:
export const removeTodo = actionCreator(
    "TODOS/REMOVE",
    (id: number) => ({ id }),
    (id: number) => ({ metaId: id, foo: "bar" }),
);

find out more

Example: Reducers

export const todosReducer = mapReducers(initialState, (handle) => [
    handle(addTodo, (state, action) => ({
        ...state,
        list: [...state.list, { id: state.nextId, label: action.payload.label, checked: false }],
        nextId: state.nextId + 1,
    })),
    ...
]);

find out more

How to Use

Check out the documentation

Similar Projects

This package is heavily inspired by deox, but uses a more lightweight approach.

Aside from that, there are redux-actions and typesafe-actions.

Report Issues

Something not working quite as expected? Do you need a feature that has not been implemented yet? Check the issue tracker and add a new one if your problem is not already listed. Please try to provide a detailed description of your problem, including the steps to reproduce it.

Contribute

Awesome! If you would like to contribute with a new feature or submit a bugfix, fork this repo and send a pull request. Please, make sure all the unit tests are passing before submitting and add new ones in case you introduced new features.

License

@react-nano has been released under the zlib/libpng license, meaning you can use it free of charge, without strings attached in commercial and non-commercial projects. Credits are appreciated but not mandatory.

Package Sidebar

Install

npm i @react-nano/tsrux

Weekly Downloads

4

Version

0.13.0

License

Zlib

Unpacked Size

9.22 kB

Total Files

8

Last publish

Collaborators

  • lusito