An open API service indexing awesome lists of open source software.

https://github.com/tylim88/re-array-order

Reorder array from one index to another index with full type safety and comprehensive errors
https://github.com/tylim88/re-array-order

npm-package typescript

Last synced: about 2 months ago
JSON representation

Reorder array from one index to another index with full type safety and comprehensive errors

Awesome Lists containing this project

README

        

# Re-Array-Order



Created by tylim88

 

License

 

dependency count

 

github action

 

code coverage

 

GitHub issues

 

code coverage

 

Total alerts

 

Language grade: JavaScript



## Installation

```bash
npm i re-array-order
```

## Usage

return a deeply cloned array

```ts
import { reorder } from 're-array-order'

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

reorder(arr, { from: 0, to: 9 }) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

reorder(arr, { from: 7, to: 3 }) // [0, 1, 2, 7, 4, 5, 6, 3, 8, 9]
```

throw error if `from` or `to` is invalid

```ts
import { reorder } from 're-array-order'

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

reorder(arr, { from: 10, to: 0 }) // from out of range
reorder(arr, { from: 0, to: 10 }) // to out of range
reorder(arr, { from: 1, to: -1 as number }) // to smaller than 0
reorder(arr, { from: -1 as number, to: 1 }) // from smaller than 0
reorder(arr, { from: 1, to: 1.34 as number }) // to is not an integer
reorder(arr, { from: 0.237 as number, to: 1 }) // from is not an integer
reorder([], { from: 0 as number, to: 0 }) // empty array
```

## Block invalid number

Typescript will stop you from using fresh negative number and fresh decimal number.

`fresh` refer to value that is not attached to any variable.

`number` is a valid type.

```ts
import { reorder } from 're-array-order'

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

reorder(arr, {
// @ts-expect-error
from: -1,
// @ts-expect-error
to: -9,
})

reorder(arr, {
// @ts-expect-error
from: 1.4233,
// @ts-expect-error
to: 8.82738,
})

reorder(arr, {
// @ts-expect-error
from: -1.4233,
// @ts-expect-error
to: -8.82738,
})
```