action-types

0.0.1 • Public • Published

action-types

es6 js-standard-style

Conveniently create action types with multi-level namespace support.

A note about compatibility

The npm package should be used in an ES6 environment. Even though the published code has ES5 syntax it uses some ES6 features, so you have to make sure to use ES5 and ES6 polyfills if you are in an ancient environment.

Install

npm install action-types

Usage

import { ActionType, createActionTypes } from './action-types'
 
createActionTypes({
  START_APP: ActionType,
  user: {
    ADD: ActionType,
    REMOVE: ActionType,
    current: {
      SET: ActionType,
      CHANGE: ActionType
    }
  }
})
 
// results in:
 
{
  START_APP: 'START_APP',
  user: {
    ADD: 'user.ADD',
    REMOVE: 'user.REMOVE',
    CHANGE: 'user.CHANGE',
    current: {
      SET: 'user.current.SET',
      CHANGE: 'user.current.CHANGE'
    }
  }
}

With initial namespace

import { ActionType, createActionTypes } from './action-types'
 
createActionTypes({
  ADD: ActionType,
  REMOVE: ActionType
}, {
  namespace: 'user'
})
 
// results in:
 
{
  ADD: 'user.ADD',
  REMOVE: 'user.REMOVE'
}

With custom namespace separator

import { ActionType, createActionTypes } from './action-types'
 
createActionTypes({
  user: {
    ADD: ActionType,
    REMOVE: ActionType
  }
}, {
  separator: '::'
})
 
// results in:
 
{
  ADD: 'user::ADD',
  REMOVE: 'user::REMOVE'
}

Test

npm test

License

MIT

Package Sidebar

Install

npm i action-types

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • layflags