Function: pipe()

Applies a sequence of functions to a value, from left to right.

This utility enables function composition in a left-to-right manner. It supports up to 26 chained functions from A through Z.

Type Param

The initial input value type.

Type Param

Intermediate and final function return types.

Param

The initial input value.

Param

Additional unary functions composing of the previous result.

Example

import { 
import Result
Result
} from '@praha/byethrow';
const
const result: string
result
=
import Result
Result
.
const pipe: <number, number, number, string>(a: number, ab: (a: number) => number, bc: (b: number) => number, cd: (c: number) => string) => string (+25 overloads)
pipe
(
2,
x: number
x
=>
x: number
x
+ 1,
x: number
x
=>
x: number
x
* 3,
x: number
x
=> `Result: ${
x: number
x
}`
); // Result: 9

Call Signature

pipe<A>(a): A

Type Parameters

A

A

Parameters

a

A

Returns

A

Call Signature

pipe<A, B>(a, ab): B

Type Parameters

A

A

B

B = never

Parameters

a

A

ab

(a) => B

Returns

B

Call Signature

pipe<A, B, C>(a, ab, bc): C

Type Parameters

A

A

B

B = never

C

C = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

Returns

C

Call Signature

pipe<A, B, C, D>(a, ab, bc, cd): D

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

Returns

D

Call Signature

pipe<A, B, C, D, E>(a, ab, bc, cd, de): E

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

Returns

E

Call Signature

pipe<A, B, C, D, E, F>(a, ab, bc, cd, de, ef): F

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

Returns

F

Call Signature

pipe<A, B, C, D, E, F, G>(a, ab, bc, cd, de, ef, fg): G

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

Returns

G

Call Signature

pipe<A, B, C, D, E, F, G, H>(a, ab, bc, cd, de, ef, fg, gh): H

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

Returns

H

Call Signature

pipe<A, B, C, D, E, F, G, H, I>(a, ab, bc, cd, de, ef, fg, gh, hi): I

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

Returns

I

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J>(a, ab, bc, cd, de, ef, fg, gh, hi, ij): J

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

Returns

J

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk): K

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

Returns

K

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl): L

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

Returns

L

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm): M

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

Returns

M

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn): N

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

Returns

N

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no): O

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

Returns

O

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op): P

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

Returns

P

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq): Q

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

Returns

Q

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr): R

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

Returns

R

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs): S

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

Returns

S

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st): T

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

Returns

T

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu): U

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

Returns

U

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu, uv): V

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

V

V = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

uv

(u) => V

Returns

V

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu, uv, vw): W

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

V

V = never

W

W = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

uv

(u) => V

vw

(v) => W

Returns

W

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu, uv, vw, wx): X

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

V

V = never

W

W = never

X

X = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

uv

(u) => V

vw

(v) => W

wx

(w) => X

Returns

X

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu, uv, vw, wx, xy): Y

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

V

V = never

W

W = never

X

X = never

Y

Y = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

uv

(u) => V

vw

(v) => W

wx

(w) => X

xy

(x) => Y

Returns

Y

Call Signature

pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z>(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st, tu, uv, vw, wx, xy, yz): Z

Type Parameters

A

A

B

B = never

C

C = never

D

D = never

E

E = never

F

F = never

G

G = never

H

H = never

I

I = never

J

J = never

K

K = never

L

L = never

M

M = never

N

N = never

O

O = never

P

P = never

Q

Q = never

R

R = never

S

S = never

T

T = never

U

U = never

V

V = never

W

W = never

X

X = never

Y

Y = never

Z

Z = never

Parameters

a

A

ab

(a) => B

bc

(b) => C

cd

(c) => D

de

(d) => E

ef

(e) => F

fg

(f) => G

gh

(g) => H

hi

(h) => I

ij

(i) => J

jk

(j) => K

kl

(k) => L

lm

(l) => M

mn

(m) => N

no

(n) => O

op

(o) => P

pq

(p) => Q

qr

(q) => R

rs

(r) => S

st

(s) => T

tu

(t) => U

uv

(u) => V

vw

(v) => W

wx

(w) => X

xy

(x) => Y

yz

(y) => Z

Returns

Z