3.0.7 • Published 7 months ago

it-split v3.0.7

Weekly downloads
-
License
Apache-2.0 OR MIT
Repository
github
Last release
7 months ago

it-split

codecov CI

Splits Uint8Arrays emitted by an (async) iterable by a delimiter

About

Searches Uint8Arrays emitted by an (async)iterable for a delimiter and yields chunks split by that delimiter.

Example

import split from 'it-split'

const encoder = new TextEncoder()

// This can also be an iterator, generator, etc
const values = [
  encoder.encode('hello\nwor'),
  encoder.encode('ld')
]

const arr = all(split(values))

console.info(arr) // [encoder.encode('hello'), encoder.encode('world')]

You can also split by arbitrary delimiters:

const values = [
  Uint8Array.from([0, 1, 2, 3]),
  Uint8Array.from([0, 1, 2, 3]),
  Uint8Array.from([1, 1, 2])
]
const delimiter = Uint8Array.from([1, 2])

const arr = all(split(values, {
  delimiter
}))

console.info(arr) // [ Buffer.from([0]), Buffer.from([3, 0]), Buffer.from([3, 1]) ]

Async sources must be awaited:

import split from 'it-split'

const encoder = new TextEncoder()

const values = async function * () {
  yield * [
    encoder.encode('hello\nwor'),
    encoder.encode('ld')
  ]
}

const arr = await all(split(values()))

console.info(arr) // [encoder.encode('hello'), encoder.encode('world')]

Install

$ npm i it-split

Browser <script> tag

Loading this module through a script tag will make it's exports available as ItSplit in the global namespace.

<script src="https://unpkg.com/it-split/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

3.0.7

7 months ago

3.0.6

8 months ago

3.0.5

1 year ago

3.0.4

1 year ago

3.0.3

1 year ago

3.0.2

2 years ago

2.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago