js-immutable-utils
v1.2.0
Published
This package provides simple utility functions for modifying immutables in Javascript.
Downloads
33
Readme
js-immutable-utils
This package provides simple utility functions for modifying immutables in Javascript.
Installation
To install this library, run the following command;npm i --save js-immutable-utils
Examples
Arrays
Appending elements onto an array
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']
Removing an element from the end of an array
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']
Removing an element from the start of an array
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']
Prepending elements onto an array
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']
Removing the second element from an array
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']
Inserting elements into an array
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']
Sorting an array
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']
Setting an element
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']
Objects
Setting a property
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}
Removing a property
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}
Sets
Adding a value to a set
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' }
Removing a value from a set
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' }