
re-flusso
re-flusso is an utility library to operate with JavaScript Streams API.
It aims to support browsers, Node.js and Edge Runtime.
Installation
NPM
npm install @ilteoood/re-flusso
PNPM
pnpm install @ilteoood/re-flusso
Usage
CommonJS
const { fromArray } = require('@ilteoood/re-flusso/fromArray');
Module
import { fromArray } from '@ilteoood/re-flusso/fromArray';
APIs
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])
)
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)
)
fromIterable
import { fromIterable } from '@ilteoood/re-flusso/fromIterable';
fromIterable([1, 2, 3])
fromIterable(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)
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)
)