re-flusso is an utility library to operate with JavaScript Streams API.
It aims to support browsers, Node.js and Edge Runtime.
NPM
npm install @ilteoood/re-flusso
PNPM
pnpm install @ilteoood/re-flusso
const { fromArray } = require('@ilteoood/re-flusso/fromArray');
import { fromArray } from '@ilteoood/re-flusso/fromArray';
accumulator
import { accumulator } from '@ilteoood/re-flusso/accumulator';
const chunkSize = 3;
.pipeThrough(
accumulator(chunkSize)
)
concat
import { concat } from '@ilteoood/re-flusso/concat';
concat(
fromIterable([1]),
fromIterable([2]),
fromIterable([3])
)
defaultTo
import { defaultTo } from '@ilteoood/re-flusso/defaultTo';
await pipeline(
fromIterable([null, undefined]),
defaultTo(1),
toIterable([])
)
equals
import { equals } from '@ilteoood/re-flusso/equals';
await pipeline(
fromIterable([1, 2, 3]),
equals(2),
toIterable([])
)
text
import { text } from '@ilteoood/re-flusso/fetch/text';
const response = await fetch('...')
text(response)
filter
import { filter } from '@ilteoood/re-flusso/filter';
.pipeThrough(
filter((value, index) => value % index === 0)
)
first
import { first } from '@ilteoood/re-flusso/first';
const firstItemsToKeep = 3;
.pipeThrough(
first(firstItemsToKeep)
)
forEach
import { forEach } from '@ilteoood/re-flusso/forEach';
.pipeTo(
forEach(console.log)
)
fromIterable
import { fromIterable } from '@ilteoood/re-flusso/fromIterable';
// With an array
fromIterable([1, 2, 3])
// With a set
fromIterable(new Set([1, 2, 3]))
has
import { has } from '@ilteoood/re-flusso/has';
.pipeThrough(
has(new Set([1, 2, 3]))
)
last
import { last } from '@ilteoood/re-flusso/last';
const lastItemsToKeep = 3;
.pipeThrough(
last(lastItemsToKeep)
)
map
import { map } from '@ilteoood/re-flusso/map';
.pipeThrough(
map((value, index) => value + index)
)
merge
import { merge } from '@ilteoood/re-flusso/merge';
merge(
fromIterable([1]),
fromIterable([2]),
fromIterable([3])
)
ndJson
parse
import { parse } from '@ilteoood/re-flusso/ndJson/parse';
.pipeThrough(
parse()
)
stringify
import { stringify } from '@ilteoood/re-flusso/ndJson/stringify';
.pipeThrough(
stringify()
)
notEmpty
import { notEmpty } from '@ilteoood/re-flusso/notEmpty';
const errorToThrow = new Error('Stream is empty');
.pipeThrough(
notEmpty(errorToThrow)
)
numbers
fromRange
import { fromRange } from '@ilteoood/re-flusso/numbers/fromRange';
fromRange(1, 3)
greaterThan
import { greaterThan } from '@ilteoood/re-flusso/numbers/greaterThan';
.pipeThrough(
greaterThan(3)
)
greaterThanEqual
import { greaterThanEqual } from '@ilteoood/re-flusso/numbers/greaterThanEqual';
.pipeThrough(
greaterThanEqual(3)
)
lessThan
import { lessThan } from '@ilteoood/re-flusso/numbers/lessThan';
.pipeThrough(
lessThan(3)
)
sum
import { sum } from '@ilteoood/re-flusso/numbers/sum';
.pipeThrough(
sum()
)
lessThan
import { lessThanEqual } from '@ilteoood/re-flusso/numbers/lessThanEqual';
lessThanEqual(3)
pipeline
import { pipeline } from '@ilteoood/re-flusso/pipeline';
const destinationArray = [];
await pipeline(
fromIterable([1, 2, 3]),
map((value) => value * 2),
toArray(destinationArray),
);
reduce
import { reduce } from '@ilteoood/re-flusso/reduce';
const destinationArray = [];
await pipeline(
fromIterable([1, 2, 3]),
reduce((accumulator, value) => accumulator + value, 0),
toArray(destinationArray),
);
repeat
import { repeat } from '@ilteoood/re-flusso/repeat';
repeat('1', 3)
skip
import { skip } from '@ilteoood/re-flusso/skip';
const itemsToSkip = 2;
.pipeTo(
skip(itemsToSkip)
)
strings
join
import { join } from '@ilteoood/re-flusso/strings/join';
const separator = ',';
.pipeThrough(
join(separator)
)
split
import { split } from '@ilteoood/re-flusso/strings/split';
const separator = ',';
.pipeTo(
split(separator)
)
toLowerCase
import { toLowerCase } from '@ilteoood/re-flusso/strings/toLowerCase';
.pipeThrough(
toLowerCase(separator)
)
toUpperCase
import { toUpperCase } from '@ilteoood/re-flusso/strings/toUpperCase';
.pipeThrough(
toUpperCase(separator)
)
toArray
import { toArray } from '@ilteoood/re-flusso/toArray';
const destinationArray = [];
.pipeTo(
toArray(destinationArray)
)
This project is kindly sponsored by Nearform.