🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

async-branch

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

async-branch

Wrap async library to describe your flow through branches

0.1.1
latest
Source
npm
Version published
Weekly downloads
1
-75%
Maintainers
1
Weekly downloads
 
Created
Source

async-branch

Build Status

Wrap async library to describe your flow through branches

Installation

npm install async-branch

Usage

Import the library

var asyncbranch = require('async-branch')

Create branches and execute

var createUser = new asyncbranch.branch('create user')
    .do(insertToDb)
    .do(sendEmailToConfirmRegistration)
    .do(emitUserCreateEvent)
    
var loginUser = new asyncbranch.branch('load user')
    .do(emitUserLoginEvent)

var loginOrRegistration = new asyncbranch.branch('login or registration')
    .do(loadUserFromEmail)
    .branch(function(model, next) {
        next(null, model ? loginUser : createUser)
    })
    .execute('example@example.com', function(err, model) {
        // if the user is on db loginUser branch is executed
        // else the createUser branch is executed
    })

Or use to map an array

var data = [
  { key1: 'pippo' },
  { key1: 'pluto' },
  { key1: 'paperina' },
  { key1: 'paperino' },
]

var tooLongFunction = function tooLongFunction(item, next) {
  item.type = 'tooLong'
  next(null, item)
}
var tooShortFunction = function tooLongFunction(item, next) {
  item.type = 'tooShort'
  next(null, item)
}

var tooLongBranch = new asyncbranch.branch('tooLongBranch')
  .map(tooLongFunction)
var tooShortBranch = new asyncbranch.branch('tooShortBranch')
  .map(tooShortFunction)

function branchFunction(item, callback) {
  callback(null, (item.key1.length > 6) ? tooLongBranch : tooShortBranch)
}

new asyncbranch.branch('branch name')
  .itemBranch(branchFunction)
  .execute(data, function(err, data) {
    // the first two item of data have type property set to tooShort
    // the other items of data have type property set to tooLong
    console.log(data)
  })

See the test folder for more explainations.

FAQs

Package last updated on 23 May 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts