JSPM

@solana/functional

2.0.0-canary-20241004213757
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 257062
  • Score
    100M100P100Q169131F
  • License MIT

Functional JavaScript helpers

Package Exports

  • @solana/functional

Readme

npm npm-downloads semantic-release
code-style-prettier

@solana/functional

This package contains generalized functional helpers and functional helpers specific to Solana application components. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK @solana/web3.js@rc.

Functions

pipe()

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

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

A pipeline is one solution to performing consecutive operations on a value using functions, such as you would when building a transaction.

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),
);