Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wildpeaks/package-frozen
Utilities to manipulate frozen arrays
https://github.com/wildpeaks/package-frozen
npm-package typescript
Last synced: 23 days ago
JSON representation
Utilities to manipulate frozen arrays
- Host: GitHub
- URL: https://github.com/wildpeaks/package-frozen
- Owner: wildpeaks
- License: mit
- Created: 2016-11-08T13:59:22.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2023-08-25T02:46:08.000Z (over 1 year ago)
- Last Synced: 2024-12-06T08:38:01.453Z (about 1 month ago)
- Topics: npm-package, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@wildpeaks/frozen
- Size: 865 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Frozen arrays utilities
![Github Release](https://img.shields.io/github/v/release/wildpeaks/package-frozen.svg?label=Release&logo=github&logoColor=eceff4&colorA=4c566a&colorB=11abfb)
Typescript functions to **manipulate [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) arrays**.
All functions leave the original Array untouched, and return a new frozen Array with the modification.
Install:
npm install @wildpeaks/frozen
---
## Function: arrayPush
**Appends a single element** at the end of an Array.
Usage:
````ts
function arrayPush(frozenArray: ReadonlyArray, newValue: T): ReadonlyArray
````Example:
````ts
import {arrayPush} from '@wildpeaks/frozen';type MyArray = ReadonlyArray;
const srcArray: MyArray = Object.freeze(['zero', 111, 'TWO']);
const newArray: MyArray = arrayPush(srcArray, 333);// Result:
// srcArray ['zero', 111, 'TWO']
// newArray ['zero', 111, 'TWO', 333]
````---
## arrayRemove
**Removes a single element**, by index.
Usage:
````ts
function arrayRemove(frozenArray: ReadonlyArray, index: number): ReadonlyArray
````Example:
````ts
import {arrayRemove} from '@wildpeaks/frozen';type MyArray = ReadonlyArray;
const srcArray: MyArray = Object.freeze(['zero', 111, 'TWO']);
const newArray: MyArray = arrayRemove(srcArray, 0);// Result:
// srcArray ['zero', 111, 'TWO']
// newArray [111, 'TWO']
````---
## arrayUniquePush
**Appends a single element** at the end of an Array like `arrayPush`, but only **if the array doesn't already contain the value**.
The Array is expected to contain only unique values.Usage:
````ts
function arrayUniquePush(frozenArray: ReadonlyArray, newValue: T): ReadonlyArray
````Example (the Array doesn't contain the value):
````ts
import {arrayUniquePush} from '@wildpeaks/frozen';type MyArray = ReadonlyArray;
const srcArray: MyArray = Object.freeze(['zero', 111, 'TWO']);
const newArray: MyArray = arrayUniquePush(srcArray, 333);// Result:
// srcArray ['zero', 111, 'TWO']
// newArray ['zero', 111, 'TWO', 333]
````Example (the Array already contains the value):
````ts
import {arrayUniquePush} from '@wildpeaks/frozen';type MyArray = ReadonlyArray;
const srcArray: MyArray = Object.freeze(['zero', 111, 'TWO']);
const newArray: MyArray = arrayUniquePush(srcArray, 111);// Result:
// srcArray ['zero', 111, 'TWO']
// newArray ['zero', 111, 'TWO']
````---
## arrayUniqueRemove
**Removes a single element** from an Array, by value (whereas `arrayRemove` removes by index).
The Array is expected to contain only unique values.Usage:
````ts
function arrayUniqueRemove(frozenArray: ReadonlyArray, value: T): ReadonlyArray
````Example:
````ts
import {arrayUniqueRemove} from '@wildpeaks/frozen';type MyArray = ReadonlyArray;
const srcArray: MyArray = Object.freeze(['zero', 111, 'TWO']);
const newArray: MyArray = arrayUniqueRemove(srcArray, 111);// Result:
// srcArray ['zero', 111, 'TWO']
// newArray ['zero', 'TWO']
````---