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