You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.2 KiB

var extend = require('util')._extend
function constructObject(initialObject) {
initialObject = initialObject || {}
return {
extend: function (object) {
return constructObject(extend(initialObject, object))
},
done: function () {
return initialObject
}
}
}
function constructOptionsFrom(uri, options) {
var params = constructObject()
if (typeof uri === 'object') params.extend(uri)
if (typeof uri === 'string') params.extend({uri: uri})
params.extend(options)
return params.done()
}
function filterForCallback(values) {
var callbacks = values.filter(isFunction)
return callbacks[0]
}
function isFunction(value) {
return typeof value === 'function'
}
function paramsHaveRequestBody(params) {
return (
params.options.body ||
params.options.requestBodyStream ||
(params.options.json && typeof params.options.json !== 'boolean') ||
params.options.multipart
)
}
exports.isFunction = isFunction
exports.constructObject = constructObject
exports.constructOptionsFrom = constructOptionsFrom
exports.filterForCallback = filterForCallback
exports.paramsHaveRequestBody = paramsHaveRequestBody