• 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

    • TInitial

    Parameters

    Returns TInitial

    The initial value

    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),
    );
  • Type Parameters

    • TInitial
    • R1

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    Returns R1

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    Returns R2

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    Returns R3

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    Returns R4

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    Returns R5

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5
    • R6

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    • r5_r6: ((r5: R5) => R6)

      The function with which to transform the return value of the prior function

        • (r5): R6
        • Parameters

          Returns R6

    Returns R6

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5
    • R6
    • R7

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    • r5_r6: ((r5: R5) => R6)

      The function with which to transform the return value of the prior function

        • (r5): R6
        • Parameters

          Returns R6

    • r6_r7: ((r6: R6) => R7)

      The function with which to transform the return value of the prior function

        • (r6): R7
        • Parameters

          Returns R7

    Returns R7

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5
    • R6
    • R7
    • R8

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    • r5_r6: ((r5: R5) => R6)

      The function with which to transform the return value of the prior function

        • (r5): R6
        • Parameters

          Returns R6

    • r6_r7: ((r6: R6) => R7)

      The function with which to transform the return value of the prior function

        • (r6): R7
        • Parameters

          Returns R7

    • r7_r8: ((r7: R7) => R8)

      The function with which to transform the return value of the prior function

        • (r7): R8
        • Parameters

          Returns R8

    Returns R8

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5
    • R6
    • R7
    • R8
    • R9

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    • r5_r6: ((r5: R5) => R6)

      The function with which to transform the return value of the prior function

        • (r5): R6
        • Parameters

          Returns R6

    • r6_r7: ((r6: R6) => R7)

      The function with which to transform the return value of the prior function

        • (r6): R7
        • Parameters

          Returns R7

    • r7_r8: ((r7: R7) => R8)

      The function with which to transform the return value of the prior function

        • (r7): R8
        • Parameters

          Returns R8

    • r8_r9: ((r8: R8) => R9)

      The function with which to transform the return value of the prior function

        • (r8): R9
        • Parameters

          Returns R9

    Returns R9

    The return value of the final transform function

  • Type Parameters

    • TInitial
    • R1
    • R2
    • R3
    • R4
    • R5
    • R6
    • R7
    • R8
    • R9
    • R10

    Parameters

    • init: TInitial

      The initial value

    • init_r1: ((init: TInitial) => R1)

      The function with which to transform the initial value

    • r1_r2: ((r1: R1) => R2)

      The function with which to transform the return value of the prior function

        • (r1): R2
        • Parameters

          Returns R2

    • r2_r3: ((r2: R2) => R3)

      The function with which to transform the return value of the prior function

        • (r2): R3
        • Parameters

          Returns R3

    • r3_r4: ((r3: R3) => R4)

      The function with which to transform the return value of the prior function

        • (r3): R4
        • Parameters

          Returns R4

    • r4_r5: ((r4: R4) => R5)

      The function with which to transform the return value of the prior function

        • (r4): R5
        • Parameters

          Returns R5

    • r5_r6: ((r5: R5) => R6)

      The function with which to transform the return value of the prior function

        • (r5): R6
        • Parameters

          Returns R6

    • r6_r7: ((r6: R6) => R7)

      The function with which to transform the return value of the prior function

        • (r6): R7
        • Parameters

          Returns R7

    • r7_r8: ((r7: R7) => R8)

      The function with which to transform the return value of the prior function

        • (r7): R8
        • Parameters

          Returns R8

    • r8_r9: ((r8: R8) => R9)

      The function with which to transform the return value of the prior function

        • (r8): R9
        • Parameters

          Returns R9

    • r9_r10: ((r9: R9) => R10)

      The function with which to transform the return value of the prior function

    Returns R10

    The return value of the final transform function