immutable.freeze

    1.0.1 • Public • Published

    immutable.freeze

    Deep Freeze Function for Redux Reducers.

    • API
    module.exports = { deepFreeze }
    • Example
     
    const cards = x => '/.../'
     
    const testRemoveCard = before => action => after =>
        expect(
            cards(deepFreeze(before))(deepFreeze(action))
        ).toEqual(after)
     
    testRemoveCard([
        {
            id: 5
        },
        {
            id: 6
        }
    ])({
        type: REMOVE_CARD,
        id: 5
    })([{ id: 6 }])
     
    const expect = require('expect')
    const deepFreeze = require('./node_modules/deep-freeze')
     
     
    const addCounter = list =>
        [...list, 0]
     
     
    const removeCounter = list => index =>
        [
            ...list.slice(0, index),
            ...list.slice(index + 1)
        ]
     
    const incrementCounter = list => index =>
        [
            ...list.slice(0, index),
            list[index] + 1,
            ...list.slice(index + 1)
        ]
     
     
    const testAddCounter = before => after =>
        expect(
            addCounter(deepFreeze(before)) // deepFreeze makes the value immutable
        ).toEqual(after)
     
     
    testAddCounter([])([0])
     
    const testRemoveCounter = before => after =>
        expect(
            removeCounter(deepFreeze(before))(1)
        ).toEqual(after)
     
    testRemoveCounter([0, 10, 20])([0, 20])
     
    const testIncrementCounter = before => after =>
        expect(
            incrementCounter(deepFreeze(before))(1) // deepFreeze makes the value immutable
        ).toEqual(after)
     
     
    testIncrementCounter([0, 10, 20])([0, 11, 20])
     

    Keywords

    none

    Install

    npm i immutable.freeze

    DownloadsWeekly Downloads

    0

    Version

    1.0.1

    License

    ISC

    Unpacked Size

    4.06 kB

    Total Files

    5

    Last publish

    Collaborators

    • tarasowski