Create Immutable State Easily
An utility to easily create immutable state for Redux
Usage
Primitive types
- Define the State
import { createState, StateObject } from 'immutable-state-creator'
const State = createState('User', {
name: 'my name',
age: 10,
languages: ['English'],
pets: List.of('cat'),
active: true,
})
- Create initial state
const initState = State.create()
- Use
getter
to select value
expect(State.get('age')(initState)).toBe(10)
expect(State.get('name')(initState)).toBe('my name')
- Use
setter
to update a value
const newState = State.set('age', 20)(initState)
expect(State.get('age')(newState)).toBe(20)
Toggle boolean value
const initState = State.create()
expect(initState.active).toBe(true)
const newState = State.toggle('active')(initState)
expect(newState.active).toBe(false)