it-split
TypeScript icon, indicating that this package has built-in type declarations

3.0.7 • Public • Published

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.

Readme

Keywords

none

Package Sidebar

Install

npm i it-split

Weekly Downloads

1,511

Version

3.0.7

License

Apache-2.0 OR MIT

Unpacked Size

21.7 kB

Total Files

10

Last publish

Collaborators

  • achingbrain