Skip to content

ruanyl/create-state

Repository files navigation

Create Immutable State Easily travis-ci

An utility to easily create immutable state for Redux

Usage

Primitive types

  1. 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,
})
  1. Create initial state
const initState = State.create()
  1. Use getter to select value
expect(State.get('age')(initState)).toBe(10)
expect(State.get('name')(initState)).toBe('my name')
  1. 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)