You can even use an array if you don't need to peek the value in the middle of a chain of operations
Example:
createChain( Object.entries(envars) .map(([key, value]) => `${key}=${value}`) .join(' ') ) .map(keys => `$ ${keys}`) .map(pattern => chalk.dim(%, 'node', args.join(' '))) .use(line => console.log(line))
You can even use an array if you don't need to peek the value in the middle of a chain of operations
Example:
In each step, you can name the intermediate result accordingly to it's meaning, should be more readable than calling it %