aboutsummaryrefslogblamecommitdiffstats
path: root/app/scripts/lib/nodeify.js
blob: 9b595d93cba8ac08acd2cf386de497732823f423 (plain) (tree)
1
2
3
4
5
6
7
                                                        
                           
 
                                                 
                      
                                         
                                         







                                                           
                                                        
   
 
const promiseToCallback = require('promise-to-callback')
const noop = function () {}

module.exports = function nodeify (fn, context) {
  return function () {
    const args = [].slice.call(arguments)
    const lastArg = args[args.length - 1]
    const lastArgIsCallback = typeof lastArg === 'function'
    let callback
    if (lastArgIsCallback) {
      callback = lastArg
      args.pop()
    } else {
      callback = noop
    }
    promiseToCallback(fn.apply(context, args))(callback)
  }
}