Module it-split

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')]

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.

Index

Interfaces

Functions