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:
parent
35f4148343
commit
be4f7b33f4
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user