This package provides simple utility functions for modifying immutables in Javascript.
To install this library, run the following command;
npm i --save js-immutable-utils
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const newPeople = arrayUtils.push(people, 'Dyllan', 'Eddie')
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(newPeople) // ['Alice', 'Bob', 'Charlie', 'Dyllan', 'Eddie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const { array: newPeople, element: lastPerson } = arrayUtils.pop(people)
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(lastPerson) // 'Charlie'
console.log(newPeople) // ['Alice', 'Bob']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const { array: newPeople, element: firstPerson } = arrayUtils.shift(people)
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(firstPerson) // 'Alice'
console.log(newPeople) // ['Bob', 'Charlie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const newPeople = arrayUtils.unshift(people, 'Sarah', 'Tom')
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(newPeople) // ['Sarah', 'Tom', 'Alice', 'Bob', 'Charlie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const { array: newPeople, removed: removedPeople } = arrayUtils.splice(people, 1)
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(removedPeople) // ['Bob']
console.log(newPeople) // ['Alice', 'Charlie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const { array: newPeople } = arrayUtils.splice(people, 1, 0, 'Sarah', 'Tom')
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(newPeople) // ['Alice', 'Sarah', 'Tom', 'Bob', 'Charlie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Bob', 'Charlie', 'Alice']
const sortedPeople = arrayUtils.sort(people)
console.log(people) // ['Bob', 'Charlie', 'Alice']
console.log(sortedPeople) // ['Alice', 'Bob', 'Charlie']
import { array as arrayUtils } from 'js-immutable-utils'
const people = ['Alice', 'Bob', 'Charlie']
const newPeople = arrayUtils.set(people, 0, 'Ayden')
console.log(people) // ['Alice', 'Bob', 'Charlie']
console.log(newPeople) // ['Ayden', 'Bob', 'Charlie']
import { object as objectUtils } from 'js-immutable-utils'
const point = { x: 0, y: 0, z: 0 }
const newPoint = objectUtils.set(point, 'x', 1)
console.log(point) // {x: 0, y: 0, z: 0}
console.log(newPoint) // {x: 1, y: 0, z: 0}
import { object as objectUtils } from 'js-immutable-utils'
const point = { x: 0, y: 0, z: 0 }
const newPoint = objectUtils.remove(point, 'z')
console.log(point) // {x: 0, y: 0, z: 0}
console.log(newPoint) // {x: 0, y: 0}
import { set as setUtils } from 'js-immutable-utils'
const names = new Set(['Alice', 'Bob', 'Charlie'])
const newNames = setUtils.add(names, 'Dyllan')
console.log(names) // Set { 'Alice', 'Bob', 'Charlie' }
console.log(newNames) // Set { 'Alice', 'Bob', 'Charlie', 'Dyllan' }
import { set as setUtils } from 'js-immutable-utils'
const names = new Set(['Alice', 'Bob', 'Charlie'])
const { removed, set: newNames } = setUtils.remove(names, 'Bob')
console.log(names) // Set { 'Alice', 'Bob', 'Charlie' }
console.log(removed) // true
console.log(newNames) // Set { 'Alice', 'Charlie' }