Skip to content

reactor-studio/re-create-actions

Repository files navigation

Introduction

Build Status All Contributors

Reduce boilerplate of your Redux actions by creating flux-standard-actions with a set of utilities this package provides.

TL;DR

// actions.js
import {
  createAction,
  createRequestTypes,
  createRequestActions
} from 're-create-actions';

// Constans
const GET_GITHUB_USERS = 'GET_GITHUB_USERS';
const SAVE_FORM_DATA = 'SAVE_FORM_DATA';

// Create action creator
export const getGithubUsers = createAction(GET_GITHUB_USERS);
// Use: dispatch(getGithubUsers())

// Create action creator with custom payload creator
// with this you can create custom payload creators
export const saveFormData = createAction(SAVE_FORM_DATA, payload => payload); 

// Create network types/constants
const GET_GITHUB_USERS_RT = createRequestTypes('GET_GITHUB_USERS_RT');
// Use: GET_GITHUB_USERS_RT.REQUESTED, GET_GITHUB_USERS_RT.COMPLETED, GET_GITHUB_USERS_RT.FAILED

// Create actions from network types
const getGithubUsersRT = createRequestActions(GET_GITHUB_USERS_RT);
// Use: dispatch(getGithubUsersRT.requested())

Install

NPM

$ npm install re-create-actions --save

Yarn

$ yarn add re-create-actions

Usage

Every helper will create action that is defined in shape by Flux standard action. We decided to go with Flux standard action because it gives you definition of minimal, common standards that are human-friendly and enable us to create assumptions about the shape of our actions.

NOTE: You can't disable flux standard action structure at the moment. But there is an open issue for this.

API

createAction (type, payloadCreator, metaCreator)

type (required)

Type: string

Type for your type property in action

payloadCreator (optional)

Type: function

Custom payload creator for action payload

metaCreator (optional)

Type: function

Custom meta creator for action

createRequestTypes(type)

type

Type: string

Type for your request types

Credits

Projects was inspired by headaches given from reading bunch of boilerplates during pull request reveiws at reactor.studio.

API for this package was inspired by this awesome projects:

Contributors

Thanks goes to these wonderful people (emoji key):


Vedran Blazenka

💻 📖

Dino Trojak

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

About

Reduce boilerplate of your Redux actions by creating flux standard actions with a set of utilities this package provides.

Resources

Stars

Watchers

Forks

Packages

No packages published