4.0.1 • Published 7 years ago
action-type v4.0.1
Action-Type 
Type class specification for actions.
Index
Ecosystem
| Project | Description |
|---|---|
| Hoe | An action emitter library for the DOM. |
| Update Function Types | Utilities for doing more complex operations based on Action and some State |
| Match Action | Switch-case for Actions |
| Action Component | A library to create components with Action and State |
Specification
- An
Actionconsists of two properties viz.typeandvalue. action.typeis of typestringornumber.action.valueis of typeany. It could also be of typeAction- The object is an immutable and should never be updated.
Action Type
An action is an object which contains two properties — type and value.
interface Action<T> {
type: string
value: T
}API
action
A utility that helps in creating a new object of action type. The function is curried by default and provides type guarantee.
import {action} from 'action-type'
action('click', {x: 10, y: 20})
action('click')({x: 10, y: 20}) // curried versionisAction
A utility function that detects if the object is of Action type.
import {isAction} from 'action-type'
isAction({}) // returns false
isAction(action('WWW', null)) // returns trueNil
A default action that represents nothingness.
import {Nil} from 'action-type'
function logic(a: number) {
if (a > 10) return action('greater', a - 10)
if (a < 10) return action('lesser', 10 - a)
return Nil
}List
A utility function that creates an Action from a list of Action[].
import {List} from 'action-type'
const list = List(action('A', 1), action('B', 2))isList
A utility function that checks if the action is of list type
import {isList} from 'action-type'
const list = List(action('A', 1), action('B', 2))
isList(list) //trueisNil
A utility function that checks if the action is of Nil
import {isNil, Nil} from 'action-type'
isNil(Nil) // true
isNil({type: '@@NIL', value: {}}) // true
isNil({type: 'click', value: {}}) // false