1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 16:18:07 +01:00
metamask-extension/app/scripts/lib/nodeify.js

25 lines
592 B
JavaScript
Raw Normal View History

2016-11-29 02:27:20 +01:00
module.exports = function (promiseFn) {
return function () {
var args = []
for (var i = 0; i < arguments.length - 1; i++) {
args.push(arguments[i])
}
2016-11-29 02:27:20 +01:00
var cb = arguments[arguments.length - 1]
const nodeified = promiseFn.apply(this, args)
if (!nodeified) {
const methodName = String(promiseFn).split('(')[0]
throw new Error(`The ${methodName} did not return a Promise, but was nodeified.`)
}
nodeified.then(function (result) {
2016-11-29 02:27:20 +01:00
cb(null, result)
})
.catch(function (reason) {
cb(reason)
})
return nodeified
}
}