Skip to main content
Home

Built and signed on GitHub Actions

Works with
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score76%
Downloads7/wk
Publisheda year ago (0.1.0)

Utils for piping and composing functions.

function flowAsync
flowAsync<A>(a: (input: A) => Awaitable<A>): (input: A) => Promise<A>

Composes async or sync functions from left to right

Type Parameters

Parameters

a: (input: A) => Awaitable<A>

Return Type

(input: A) => Promise<A>

A function that applies the composed functions in left-to-right order

flowAsync<
A,
B,
>
(a: (input: A) => Awaitable<B>): (input: A) => Promise<B>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>

Return Type

(input: A) => Promise<B>
flowAsync<
A,
B,
C,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
): (input: A) => Promise<C>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>

Return Type

(input: A) => Promise<C>
flowAsync<
A,
B,
C,
D,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
): (input: A) => Promise<D>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>

Return Type

(input: A) => Promise<D>
flowAsync<
A,
B,
C,
D,
E,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
): (input: A) => Promise<E>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>

Return Type

(input: A) => Promise<E>
flowAsync<
A,
B,
C,
D,
E,
F,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
): (input: A) => Promise<F>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>

Return Type

(input: A) => Promise<F>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
): (input: A) => Promise<G>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>

Return Type

(input: A) => Promise<G>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
): (input: A) => Promise<H>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>

Return Type

(input: A) => Promise<H>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
): (input: A) => Promise<I>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>

Return Type

(input: A) => Promise<I>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
): (input: A) => Promise<J>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>

Return Type

(input: A) => Promise<J>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
): (input: A) => Promise<K>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>

Return Type

(input: A) => Promise<K>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
): (input: A) => Promise<L>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>

Return Type

(input: A) => Promise<L>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
): (input: A) => Promise<M>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>

Return Type

(input: A) => Promise<M>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
): (input: A) => Promise<N>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>

Return Type

(input: A) => Promise<N>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
): (input: A) => Promise<O>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>

Return Type

(input: A) => Promise<O>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
): (input: A) => Promise<P>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>

Return Type

(input: A) => Promise<P>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
p: (input: P) => Awaitable<Q>,
): (input: A) => Promise<Q>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>
p: (input: P) => Awaitable<Q>

Return Type

(input: A) => Promise<Q>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
p: (input: P) => Awaitable<Q>,
q: (input: Q) => Awaitable<R>,
): (input: A) => Promise<R>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>
p: (input: P) => Awaitable<Q>
q: (input: Q) => Awaitable<R>

Return Type

(input: A) => Promise<R>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
p: (input: P) => Awaitable<Q>,
q: (input: Q) => Awaitable<R>,
r: (input: R) => Awaitable<S>,
): (input: A) => Promise<S>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>
p: (input: P) => Awaitable<Q>
q: (input: Q) => Awaitable<R>
r: (input: R) => Awaitable<S>

Return Type

(input: A) => Promise<S>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
p: (input: P) => Awaitable<Q>,
q: (input: Q) => Awaitable<R>,
r: (input: R) => Awaitable<S>,
s: (input: S) => Awaitable<T>,
): (input: A) => Promise<T>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>
p: (input: P) => Awaitable<Q>
q: (input: Q) => Awaitable<R>
r: (input: R) => Awaitable<S>
s: (input: S) => Awaitable<T>

Return Type

(input: A) => Promise<T>
flowAsync<
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
>
(
a: (input: A) => Awaitable<B>,
b: (input: B) => Awaitable<C>,
c: (input: C) => Awaitable<D>,
d: (input: D) => Awaitable<E>,
e: (input: E) => Awaitable<F>,
f: (input: F) => Awaitable<G>,
g: (input: G) => Awaitable<H>,
h: (input: H) => Awaitable<I>,
i: (input: I) => Awaitable<J>,
j: (input: J) => Awaitable<K>,
k: (input: K) => Awaitable<L>,
l: (input: L) => Awaitable<M>,
m: (input: M) => Awaitable<N>,
n: (input: N) => Awaitable<O>,
o: (input: O) => Awaitable<P>,
p: (input: P) => Awaitable<Q>,
q: (input: Q) => Awaitable<R>,
r: (input: R) => Awaitable<S>,
s: (input: S) => Awaitable<T>,
t: (input: T) => Awaitable<U>,
): (input: A) => Promise<U>

Type Parameters

Parameters

a: (input: A) => Awaitable<B>
b: (input: B) => Awaitable<C>
c: (input: C) => Awaitable<D>
d: (input: D) => Awaitable<E>
e: (input: E) => Awaitable<F>
f: (input: F) => Awaitable<G>
g: (input: G) => Awaitable<H>
h: (input: H) => Awaitable<I>
i: (input: I) => Awaitable<J>
j: (input: J) => Awaitable<K>
k: (input: K) => Awaitable<L>
l: (input: L) => Awaitable<M>
m: (input: M) => Awaitable<N>
n: (input: N) => Awaitable<O>
o: (input: O) => Awaitable<P>
p: (input: P) => Awaitable<Q>
q: (input: Q) => Awaitable<R>
r: (input: R) => Awaitable<S>
s: (input: S) => Awaitable<T>
t: (input: T) => Awaitable<U>

Return Type

(input: A) => Promise<U>
flowAsync(...fns: Array<(input: unknown) => Awaitable<unknown>>): (input: unknown) => Promise<unknown>

Parameters

...fns: Array<(input: unknown) => Awaitable<unknown>>

Return Type

(input: unknown) => Promise<unknown>

Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";
or

Import directly with a jsr specifier

import { flowAsync } from "jsr:@gordonb/pipe";

Add Package

pnpm i jsr:@gordonb/pipe
or (using pnpm 10.8 or older)
pnpm dlx jsr add @gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";

Add Package

yarn add jsr:@gordonb/pipe
or (using Yarn 4.8 or older)
yarn dlx jsr add @gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";

Add Package

vlt install jsr:@gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";

Add Package

npx jsr add @gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";

Add Package

bunx jsr add @gordonb/pipe

Import symbol

import { flowAsync } from "@gordonb/pipe";