Necessarily Precedes Mischief

    fail-safe-queue

    0.1.0 • Public • Published

    Fail Safe Queue

    It's a very simple Queue of functions. But also let's you define, for each one, a rollback in case something goes wrong later on the queue stack calling.

    Heavily inspired by caolan/async.

    Installation

    npm install fail-safe-queue --save

    Quick Examples

    Success example:

    var queue = require('fail-safe-queue')
     
    queue([
      {
        up: function(next){
          console.log('+ up! 1')
          next(null, 1)
        },
        down: function(prev){
          console.log('- down! 1')
          prev()
        }
      },
      function(next){
        console.log('+ up! 2')
        next(null, 2)
      },
      {
        up: function(next){
          console.log('+ up! 3')
          next('3 con error', 3)
        },
        down: function(prev){
          console.log('- down! 3')
          prev()
        }
      }
    ], function(err, upResults, downResults){
      console.log('err', err)
      console.log('upResults', upResults)
    })

    Will echo:

      + up! 1
      + up! 2
      + up! 3
      err null
      results [ [ 1 ], [ 2 ], [ 3 ] ]
    

    Fail example:

    var queue = require('fail-safe-queue')
     
    queue([
      {
        up: function(next){
          console.log('+ up! 1')
          next(null, 1)
        },
        down: function(prev){
          console.log('- down! 1')
          prev()
        }
      },
      {
        up: function(next){
          console.log('+ up! 2')
          next('This method triggered an error :S', 2)
        },
        down: function(prev){
          console.log('- down! 2')
          prev()
        }
      },
      {
        up: function(next){
          console.log('+ up! 3')
          next(null, 3)
        },
        down: function(prev){
          console.log('- down! 3')
          prev()
        }
      }
    ], function(err, upResults){
      console.log('err', err)
      console.log('upResults', upResults)
    })

    Will echo:

      + up! 1
      + up! 2
      - down! 1
      err This method triggered an error :S
      results [ [ 1 ] ]
    

    API

    queue(tasks, [callback])

    Arguments

    • tasks - It's an array of tasks. Each task could be a simple function to be called in order or an object with two functions, up: [Function(next)] and down: [Function(prev)].
    • callback(err, results) - An optional callback to run once all the functions have completed. This function gets a results array containing all the result arguments passed to the task callbacks.

    Install

    npm i fail-safe-queue

    DownloadsWeekly Downloads

    0

    Version

    0.1.0

    License

    ISC

    Last publish

    Collaborators

    • mjlescano