Function: flow()
Call Signature
flow(): () =>
void
Defined in: index.ts:33
Creates function that applies given series of functions in order.
Returns
A new function that applies all provided functions in sequence
():
void
Returns
void
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1>(f1): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R1>> :R1extendsPromise<unknown> ?Promise<Awaited<R1>> :R1
Defined in: index.ts:34
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
Parameters
f1
Fn<A, R1>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R1>> :R1extendsPromise<unknown> ?Promise<Awaited<R1>> :R1
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R1>> : R1 extends Promise<unknown> ? Promise<Awaited<R1>> : R1
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2>(f1,f2): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R2>> :R1extendsPromise<unknown> ?Promise<Awaited<R2>> :R2extendsPromise<unknown> ?Promise<Awaited<R2>> :R2
Defined in: index.ts:35
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R2>> :R1extendsPromise<unknown> ?Promise<Awaited<R2>> :R2extendsPromise<unknown> ?Promise<Awaited<R2>> :R2
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R2>> : R1 extends Promise<unknown> ? Promise<Awaited<R2>> : R2 extends Promise<unknown> ? Promise<Awaited<R2>> : R2
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3>(f1,f2,f3): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R3>> :R1extendsPromise<unknown> ?Promise<Awaited<R3>> :R2extendsPromise<unknown> ?Promise<Awaited<R3>> :R3extendsPromise<unknown> ?Promise<Awaited<R3>> :R3
Defined in: index.ts:36
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R3>> :R1extendsPromise<unknown> ?Promise<Awaited<R3>> :R2extendsPromise<unknown> ?Promise<Awaited<R3>> :R3extendsPromise<unknown> ?Promise<Awaited<R3>> :R3
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R3>> : R1 extends Promise<unknown> ? Promise<Awaited<R3>> : R2 extends Promise<unknown> ? Promise<Awaited<R3>> : R3 extends Promise<unknown> ? Promise<Awaited<R3>> : R3
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4>(f1,f2,f3,f4): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R4>> :R1extendsPromise<unknown> ?Promise<Awaited<R4>> :R2extendsPromise<unknown> ?Promise<Awaited<R4>> :R3extendsPromise<unknown> ?Promise<Awaited<R4>> :R4extendsPromise<unknown> ?Promise<Awaited<R4>> :R4
Defined in: index.ts:41
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R4>> :R1extendsPromise<unknown> ?Promise<Awaited<R4>> :R2extendsPromise<unknown> ?Promise<Awaited<R4>> :R3extendsPromise<unknown> ?Promise<Awaited<R4>> :R4extendsPromise<unknown> ?Promise<Awaited<R4>> :R4
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R4>> : R1 extends Promise<unknown> ? Promise<Awaited<R4>> : R2 extends Promise<unknown> ? Promise<Awaited<R4>> : R3 extends Promise<unknown> ? Promise<Awaited<R4>> : R4 extends Promise<unknown> ? Promise<Awaited<R4>> : R4
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5>(f1,f2,f3,f4,f5): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R5>> :R1extendsPromise<unknown> ?Promise<Awaited<R5>> :R2extendsPromise<unknown> ?Promise<Awaited<R5>> :R3extendsPromise<unknown> ?Promise<Awaited<R5>> :R4extendsPromise<unknown> ?Promise<Awaited<R5>> :R5extendsPromise<unknown> ?Promise<Awaited<R5>> :R5
Defined in: index.ts:47
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R5>> :R1extendsPromise<unknown> ?Promise<Awaited<R5>> :R2extendsPromise<unknown> ?Promise<Awaited<R5>> :R3extendsPromise<unknown> ?Promise<Awaited<R5>> :R4extendsPromise<unknown> ?Promise<Awaited<R5>> :R5extendsPromise<unknown> ?Promise<Awaited<R5>> :R5
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R5>> : R1 extends Promise<unknown> ? Promise<Awaited<R5>> : R2 extends Promise<unknown> ? Promise<Awaited<R5>> : R3 extends Promise<unknown> ? Promise<Awaited<R5>> : R4 extends Promise<unknown> ? Promise<Awaited<R5>> : R5 extends Promise<unknown> ? Promise<Awaited<R5>> : R5
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5,R6>(f1,f2,f3,f4,f5,f6): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R6>> :R1extendsPromise<unknown> ?Promise<Awaited<R6>> :R2extendsPromise<unknown> ?Promise<Awaited<R6>> :R3extendsPromise<unknown> ?Promise<Awaited<R6>> :R4extendsPromise<unknown> ?Promise<Awaited<R6>> :R5extendsPromise<unknown> ?Promise<Awaited<R6>> :R6extendsPromise<unknown> ?Promise<Awaited<R6>> :R6
Defined in: index.ts:54
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
f6
Fn<R5, R6>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R6>> :R1extendsPromise<unknown> ?Promise<Awaited<R6>> :R2extendsPromise<unknown> ?Promise<Awaited<R6>> :R3extendsPromise<unknown> ?Promise<Awaited<R6>> :R4extendsPromise<unknown> ?Promise<Awaited<R6>> :R5extendsPromise<unknown> ?Promise<Awaited<R6>> :R6extendsPromise<unknown> ?Promise<Awaited<R6>> :R6
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R6>> : R1 extends Promise<unknown> ? Promise<Awaited<R6>> : R2 extends Promise<unknown> ? Promise<Awaited<R6>> : R3 extends Promise<unknown> ? Promise<Awaited<R6>> : R4 extends Promise<unknown> ? Promise<Awaited<R6>> : R5 extends Promise<unknown> ? Promise<Awaited<R6>> : R6 extends Promise<unknown> ? Promise<Awaited<R6>> : R6
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5,R6,R7>(f1,f2,f3,f4,f5,f6,f7): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R7>> :R1extendsPromise<unknown> ?Promise<Awaited<R7>> :R2extendsPromise<unknown> ?Promise<Awaited<R7>> :R3extendsPromise<unknown> ?Promise<Awaited<R7>> :R4extendsPromise<unknown> ?Promise<Awaited<R7>> :R5extendsPromise<unknown> ?Promise<Awaited<R7>> :R6extendsPromise<unknown> ?Promise<Awaited<R7>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R7
Defined in: index.ts:62
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
f6
Fn<R5, R6>
f7
Fn<R6, R7>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R7>> :R1extendsPromise<unknown> ?Promise<Awaited<R7>> :R2extendsPromise<unknown> ?Promise<Awaited<R7>> :R3extendsPromise<unknown> ?Promise<Awaited<R7>> :R4extendsPromise<unknown> ?Promise<Awaited<R7>> :R5extendsPromise<unknown> ?Promise<Awaited<R7>> :R6extendsPromise<unknown> ?Promise<Awaited<R7>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R7
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R7>> : R1 extends Promise<unknown> ? Promise<Awaited<R7>> : R2 extends Promise<unknown> ? Promise<Awaited<R7>> : R3 extends Promise<unknown> ? Promise<Awaited<R7>> : R4 extends Promise<unknown> ? Promise<Awaited<R7>> : R5 extends Promise<unknown> ? Promise<Awaited<R7>> : R6 extends Promise<unknown> ? Promise<Awaited<R7>> : R7 extends Promise<unknown> ? Promise<Awaited<...>> : R7
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5,R6,R7,R8>(f1,f2,f3,f4,f5,f6,f7,f8): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R8>> :R1extendsPromise<unknown> ?Promise<Awaited<R8>> :R2extendsPromise<unknown> ?Promise<Awaited<R8>> :R3extendsPromise<unknown> ?Promise<Awaited<R8>> :R4extendsPromise<unknown> ?Promise<Awaited<R8>> :R5extendsPromise<unknown> ?Promise<Awaited<R8>> :R6extendsPromise<unknown> ?Promise<Awaited<R8>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> :R8
Defined in: index.ts:71
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
f6
Fn<R5, R6>
f7
Fn<R6, R7>
f8
Fn<R7, R8>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R8>> :R1extendsPromise<unknown> ?Promise<Awaited<R8>> :R2extendsPromise<unknown> ?Promise<Awaited<R8>> :R3extendsPromise<unknown> ?Promise<Awaited<R8>> :R4extendsPromise<unknown> ?Promise<Awaited<R8>> :R5extendsPromise<unknown> ?Promise<Awaited<R8>> :R6extendsPromise<unknown> ?Promise<Awaited<R8>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> :R8
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R8>> : R1 extends Promise<unknown> ? Promise<Awaited<R8>> : R2 extends Promise<unknown> ? Promise<Awaited<R8>> : R3 extends Promise<unknown> ? Promise<Awaited<R8>> : R4 extends Promise<unknown> ? Promise<Awaited<R8>> : R5 extends Promise<unknown> ? Promise<Awaited<R8>> : R6 extends Promise<unknown> ? Promise<Awaited<R8>> : R7 extends Promise<unknown> ? Promise<Awaited<...>> : R8 extends Promise<...> ? Promise<...> : R8
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5,R6,R7,R8,R9>(f1,f2,f3,f4,f5,f6,f7,f8,f9): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R9>> :R1extendsPromise<unknown> ?Promise<Awaited<R9>> :R2extendsPromise<unknown> ?Promise<Awaited<R9>> :R3extendsPromise<unknown> ?Promise<Awaited<R9>> :R4extendsPromise<unknown> ?Promise<Awaited<R9>> :R5extendsPromise<unknown> ?Promise<Awaited<R9>> :R6extendsPromise<unknown> ?Promise<Awaited<R9>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> : ... extends ... ? ... : ...
Defined in: index.ts:81
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
R9
R9
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
f6
Fn<R5, R6>
f7
Fn<R6, R7>
f8
Fn<R7, R8>
f9
Fn<R8, R9>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R9>> :R1extendsPromise<unknown> ?Promise<Awaited<R9>> :R2extendsPromise<unknown> ?Promise<Awaited<R9>> :R3extendsPromise<unknown> ?Promise<Awaited<R9>> :R4extendsPromise<unknown> ?Promise<Awaited<R9>> :R5extendsPromise<unknown> ?Promise<Awaited<R9>> :R6extendsPromise<unknown> ?Promise<Awaited<R9>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> : ... extends ... ? ... : ...
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R9>> : R1 extends Promise<unknown> ? Promise<Awaited<R9>> : R2 extends Promise<unknown> ? Promise<Awaited<R9>> : R3 extends Promise<unknown> ? Promise<Awaited<R9>> : R4 extends Promise<unknown> ? Promise<Awaited<R9>> : R5 extends Promise<unknown> ? Promise<Awaited<R9>> : R6 extends Promise<unknown> ? Promise<Awaited<R9>> : R7 extends Promise<unknown> ? Promise<Awaited<...>> : R8 extends Promise<...> ? Promise<...> : ... extends ... ? ... : ...
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10>(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10): (arg) =>AextendsPromise<unknown> ?Promise<Awaited<R10>> :R1extendsPromise<unknown> ?Promise<Awaited<R10>> :R2extendsPromise<unknown> ?Promise<Awaited<R10>> :R3extendsPromise<unknown> ?Promise<Awaited<R10>> :R4extendsPromise<unknown> ?Promise<Awaited<R10>> :R5extendsPromise<unknown> ?Promise<Awaited<R10>> :R6extendsPromise<unknown> ?Promise<Awaited<R10>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> : ... extends ... ? ... : ...
Defined in: index.ts:92
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
R9
R9
R10
R10
Parameters
f1
Fn<A, R1>
f2
Fn<R1, R2>
f3
Fn<R2, R3>
f4
Fn<R3, R4>
f5
Fn<R4, R5>
f6
Fn<R5, R6>
f7
Fn<R6, R7>
f8
Fn<R7, R8>
f9
Fn<R8, R9>
f10
Fn<R9, R10>
Returns
A new function that applies all provided functions in sequence
(
arg):AextendsPromise<unknown> ?Promise<Awaited<R10>> :R1extendsPromise<unknown> ?Promise<Awaited<R10>> :R2extendsPromise<unknown> ?Promise<Awaited<R10>> :R3extendsPromise<unknown> ?Promise<Awaited<R10>> :R4extendsPromise<unknown> ?Promise<Awaited<R10>> :R5extendsPromise<unknown> ?Promise<Awaited<R10>> :R6extendsPromise<unknown> ?Promise<Awaited<R10>> :R7extendsPromise<unknown> ?Promise<Awaited<...>> :R8extendsPromise<...> ?Promise<...> : ... extends ... ? ... : ...
Parameters
arg
A
Returns
A extends Promise<unknown> ? Promise<Awaited<R10>> : R1 extends Promise<unknown> ? Promise<Awaited<R10>> : R2 extends Promise<unknown> ? Promise<Awaited<R10>> : R3 extends Promise<unknown> ? Promise<Awaited<R10>> : R4 extends Promise<unknown> ? Promise<Awaited<R10>> : R5 extends Promise<unknown> ? Promise<Awaited<R10>> : R6 extends Promise<unknown> ? Promise<Awaited<R10>> : R7 extends Promise<unknown> ? Promise<Awaited<...>> : R8 extends Promise<...> ? Promise<...> : ... extends ... ? ... : ...
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"Call Signature
flow<
A>(...fns):Fn<A,unknown>
Defined in: index.ts:104
Creates function that applies given series of functions in order.
Type Parameters
A
A
The input type of the first function
Parameters
fns
...Fn[]
A series of functions to compose, where each function's input type matches the previous function's output
Returns
Fn<A, unknown>
A new function that applies all provided functions in sequence
Examples
const transform = flow(
(x: number) => x * 2,
(x) => x + 1,
(x) => x.toString()
); // (x: number) => string
const result = transform(5); // "11"const asyncTransform = flow(
(x: number) => x * 2,
async (x) => Promise.resolve(x + 1),
(x) => x.toString()
); // (x: number) => Promise<string>
const result = await asyncTransform(5); // "11"