forked from marcello3d/node-mongolian
-
Notifications
You must be signed in to change notification settings - Fork 1
/
util.js
34 lines (30 loc) · 1014 Bytes
/
util.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* Mongolian DeadBeef by Marcello Bastea-Forte - zlib license */
var util = require('util')
//////////////////////////////////////////////////////////////////////////////////
// Internal
/**
* Convenience method for handling async value callbacks
*
* @param callback the target async callback
* @param body the body to call
* @returns an async function(err,value)
*/
exports.safetyNet = function(callback,body) {
return function(error, result) {
if (error) {
callback && callback(error)
} else {
body(result)
}
}
}
exports.extend = function(destination, source) {
if (source) for (var key in source) destination[key] = source[key]
return destination
}
exports.callback = function(argumentsObject, required, offset) {
var callback = argumentsObject[argumentsObject.length - (offset || 1)]
if (typeof callback === 'function') return callback
if (required) throw new Error(required + ' callback is required')
return undefined
}