mirror of https://github.com/lukechilds/node.git
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
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
|
|
|