js-immutable-utils
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

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' }

Readme

Keywords

Package Sidebar

Install

npm i js-immutable-utils

Weekly Downloads

12

Version

1.2.0

License

MIT

Unpacked Size

23 kB

Total Files

19

Last publish

Collaborators

  • thomasio101