Kit
Functions

pipe

Call Signature

pipe<TInitial>(init): TInitial

A pipeline is a solution that allows you to perform successive transforms of a value using functions. This is useful when building up a transaction message.

Until the pipeline operator becomes part of JavaScript you can use this utility to create pipelines.

Following common implementations of pipe functions that use TypeScript, this function supports a maximum arity of 10 for type safety.

Note you can use nested pipes to extend this limitation, like so:

const myValue = pipe(
     pipe(
         1,
         (x) => x + 1,
         (x) => x * 2,
         (x) => x - 1,
     ),
     (y) => y / 3,
     (y) => y + 1,
);

Type Parameters

Type Parameter
TInitial

Parameters

ParameterTypeDescription
initTInitialThe initial value

Returns

TInitial

The initial value

See

Examples

const add = (a, b) => a + b;
const add10 = x => add(x, 10);
const add100 = x => add(x, 100);
const sum = pipe(1, add10, add100);
sum === 111; // true
const transferTransactionMessage = pipe(
    // The result of the first expression...
    createTransactionMessage({ version: 0 }),
    // ...gets passed as the sole argument to the next function in the pipeline.
    tx => setTransactionMessageFeePayer(myAddress, tx),
    // The return value of that function gets passed to the next...
    tx => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx),
    // ...and so on.
    tx => appendTransactionMessageInstruction(createTransferInstruction(myAddress, toAddress, amountInLamports), tx),
);

Call Signature

pipe<TInitial, R1>(init, init_r1): R1

Type Parameters

Type Parameter
TInitial
R1

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value

Returns

R1

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2>(init, init_r1, r1_r2): R2

Type Parameters

Type Parameter
TInitial
R1
R2

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function

Returns

R2

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3>(init, init_r1, r1_r2, r2_r3): R3

Type Parameters

Type Parameter
TInitial
R1
R2
R3

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function

Returns

R3

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4>(init, init_r1, r1_r2, r2_r3, r3_r4): R4

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function

Returns

R4

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5): R5

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function

Returns

R5

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5, R6>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5, r5_r6): R6

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5
R6

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function
r5_r6(r5) => R6The function with which to transform the return value of the prior function

Returns

R6

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5, R6, R7>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5, r5_r6, r6_r7): R7

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5
R6
R7

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function
r5_r6(r5) => R6The function with which to transform the return value of the prior function
r6_r7(r6) => R7The function with which to transform the return value of the prior function

Returns

R7

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5, r5_r6, r6_r7, r7_r8): R8

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5
R6
R7
R8

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function
r5_r6(r5) => R6The function with which to transform the return value of the prior function
r6_r7(r6) => R7The function with which to transform the return value of the prior function
r7_r8(r7) => R8The function with which to transform the return value of the prior function

Returns

R8

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8, R9>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5, r5_r6, r6_r7, r7_r8, r8_r9): R9

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5
R6
R7
R8
R9

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function
r5_r6(r5) => R6The function with which to transform the return value of the prior function
r6_r7(r6) => R7The function with which to transform the return value of the prior function
r7_r8(r7) => R8The function with which to transform the return value of the prior function
r8_r9(r8) => R9The function with which to transform the return value of the prior function

Returns

R9

The return value of the final transform function

Call Signature

pipe<TInitial, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10>(init, init_r1, r1_r2, r2_r3, r3_r4, r4_r5, r5_r6, r6_r7, r7_r8, r8_r9, r9_r10): R10

Type Parameters

Type Parameter
TInitial
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10

Parameters

ParameterTypeDescription
initTInitialThe initial value
init_r1(init) => R1The function with which to transform the initial value
r1_r2(r1) => R2The function with which to transform the return value of the prior function
r2_r3(r2) => R3The function with which to transform the return value of the prior function
r3_r4(r3) => R4The function with which to transform the return value of the prior function
r4_r5(r4) => R5The function with which to transform the return value of the prior function
r5_r6(r5) => R6The function with which to transform the return value of the prior function
r6_r7(r6) => R7The function with which to transform the return value of the prior function
r7_r8(r7) => R8The function with which to transform the return value of the prior function
r8_r9(r8) => R9The function with which to transform the return value of the prior function
r9_r10(r9) => R10The function with which to transform the return value of the prior function

Returns

R10

The return value of the final transform function