1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

nodeify - allow callback to be optional

This commit is contained in:
kumavis 2017-10-06 12:36:08 -07:00
parent 35f4148343
commit be4f7b33f4

View File

@ -1,10 +1,18 @@
const promiseToCallback = require('promise-to-callback') const promiseToCallback = require('promise-to-callback')
const noop = function(){}
module.exports = function nodeify (fn, context) { module.exports = function nodeify (fn, context) {
return function(){ return function(){
const args = [].slice.call(arguments) const args = [].slice.call(arguments)
const callback = args.pop() const lastArg = args[args.length-1]
if (typeof callback !== 'function') throw new Error('callback is not a function') const lastArgIsCallback = typeof lastArg === 'function'
let callback
if (lastArgIsCallback) {
callback = lastArg
args.pop()
} else {
callback = noop
}
promiseToCallback(fn.apply(context, args))(callback) promiseToCallback(fn.apply(context, args))(callback)
} }
} }