1.0.1 • Published 6 years ago

re-create-actions v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

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';

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

// 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!