# actions-creator-factory

> This library provide an easy way to remove the boilerplate around the actions creator in a MVI application

Latest version **0.1.1** (published 2016-12-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install actions-creator-factory
pnpm add actions-creator-factory
yarn add actions-creator-factory
bun add actions-creator-factory
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.1 |
| Published | 2016-12-01 |
| First published | 2016-11-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Mattia Occhiuto |
| Maintainers | brakko |
| Keywords | actions, redux, boilerplate |

## Links

- npm: https://www.npmjs.com/package/actions-creator-factory
- Repository: https://github.com/mattiaocchiuto/actions-creator-factory
- Homepage: https://github.com/mattiaocchiuto/actions-creator-factory#readme
- Issues: https://github.com/mattiaocchiuto/actions-creator-factory/issues
- npm.io page: https://npm.io/package/actions-creator-factory

## Dependencies (1)

- [eslint-config-airbnb](https://npm.io/package/eslint-config-airbnb.md) ^13.0.0

## Recent versions

- 0.1.1 (latest) — 2016-12-01
- 0.0.2 — 2016-11-27
- 0.0.1 — 2016-11-27

## README

# actions-creator-factory
[![Build Status](https://travis-ci.org/mattiaocchiuto/actions-creator-factory.svg?branch=master)](https://travis-ci.org/mattiaocchiuto/actions-creator-factory) [![npm version](https://badge.fury.io/js/actions-creator-factory.svg)](https://badge.fury.io/js/actions-creator-factory)

[![Semver](http://img.shields.io/SemVer/2.0.0.png)](http://semver.org/spec/v2.0.0.html)

[![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)  


This is a very tiny script that prevent you from writing all the boilerplate related to the actions creator functions.

Generally in a redux application (or more generally in an MVI) we have a (or more) file containing the actions type constants and in another different file the actions creator function.

Every time we would add a new action we should add the new constant and the new action-creator-function, and usually (at least in my experience) this is a copy and paste task.

This script provide a factory function whose goal is to automatically generate the actions-creator-functions just receiving as input a cofiguration array containing the actions-constants.

## Installation
From npm
```
npm i --save actions-creator-factory
```
```javascript
import { actionsCreatorFactory, noop, identity } from 'actions-creator-factory';
```

## Examples of use:
```javascript
const actions = {
    'TEST_NO_PAYLOAD': noop,
    'TEST_PAYLOAD_ALL': identity,
    'TEST_PAYLOAD_FUNCTION': (data) => data + ' test',
};

const actionCreators = actionsCreatorFactory(actions);
```
The library provide mainly three different functions that can be used as payload function transformator:

1. ```actionsCreatorFactory```: main function used for the dynamic creation of the action creator functions, it take as input the configuration object
2. ```noop```: function used for specify an action with no payload
3. ```identity```: function used for specify an action where the param passed to the actions creator function should used for the payload as is

Furthermore custom function can be used, this function should always return something, this function will be receive as input the passed payload and produce as output the value to dispatch.

##Development
Fetch the dependencies by
```
npm install
```
then
### Building
```
npm run build
```

### Running test
```
npm run test
```
  
## License
This project is licensed under the terms of MIT License. See the LICENSE file for more info.

---
_Source: https://npm.io/package/actions-creator-factory · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
