js-messages
A small library to handle messages, message types and message creators
(also known as "actions", "action types" and "action creators" in redux context).
js-messages is written in TypeScript, everything is completely type safe.
Installation
npm install --save js-messages
Usage
js-messages consists of three functions:
defineMessage
: To define one type of message / to create one message creatordefineMessages
: To define multiple related messages represented by message creatorsprops
: A helper function to define a message creator where all message properties
must be declared explicitly in an object.
Example 1 (using defineMessage
)
import { defineMessage } from 'js-messages'
const increment = defineMessage('increment')
const decrement = defineMessage('decrement')
const resetTo = defineMessage('resetTo', (value: number) => ({ value }))
Example 2 (using defineMessage
and props
)
const saveToStorage = defineMessage(
'saveToStorage',
props<{ tasks: Task[]; storageKey: string }>()
)
Example 3 (using defineMessages
, without namespace):
import { defineMessages } from 'js-messages'
const Actions = defineMessages({
increment: null,
decrement: null,
resetTo: (value: number) => ({ value })
log: (value: number, message: string = null) => ({ value, message })
})
Example 4 (using defineMessages
, with namespace):
import { defineMessages } from 'js-messages'
const Actions = defineMessages('counter', {
increment: null,
decrement: null,
resetTo: (value: number) => ({ value })
log: (value: number, message: string = null) => ({ value, message })
})
License
"js-messages" is licensed under LGPLv3.
Project status
"js-messages" is currently in beta status.