node-train
v1.0.0
Published
[![npm version](https://badge.fury.io/js/node-train.svg)](https://badge.fury.io/js/node-train)
Downloads
23
Readme
node-train
Inspired by Clojure's "thread-last" macro.
Installation
Npm:
$ npm i node-train
Yarn:
$ yarn add node-train
Use case
const train = require('node-train')
const _ = require('lodash')
const calls =
await train(callsResponse.items,
addTotalSpendingPerCall,
addShopNamePerCall,
addCustomerPerCall,
addBranchIdPerCall,
addProductDescriptionPerCall,
_.last)
return calls
// same as
const calls = callsResponse.items
const callsWithTotalSpending = await addTotalSpendingPerCall(calls)
const callsWithTotalSpendingAndShopName = await addShopNamePerCall(callsWithTotalSpending)
const callsWithTotalSpendingAndShopNameAndCustomer = await addCustomerPerCall(callsWithTotalSpendingAndShopName)
const callsWithTotalSpendingAndShopNameAndCustomerAndBranchId = await addBranchIdPerCall(callsWithTotalSpendingAndShopNameAndCustomer)
const callsWithTotalSpendingAndShopNameAndCustomerAndBranchIdAndProductDescription = await addProductDescriptionPerCall(callsWithTotalSpendingAndShopNameAndCustomerAndBranchId)
const lastCallWithTotalSpendingAndShopNameAndCustomerAndBranchIdAndProductDescription = _.last(callsWithTotalSpendingAndShopNameAndCustomerAndBranchIdAndProductDescription)
return lastCallWithTotalSpendingAndShopNameAndCustomerAndBranchIdAndProductDescription