|
12 | 12 | // See the License for the specific language governing permissions and |
13 | 13 | // limitations under the License. |
14 | 14 |
|
15 | | -var cookies = require('./lib/cookies') |
16 | | - , copy = require('./lib/copy') |
17 | | - , extend = require('util')._extend |
| 15 | +var extend = require('util')._extend |
| 16 | + , cookies = require('./lib/cookies') |
| 17 | + , copy = require('./lib/copy') |
| 18 | + , helpers = require('./lib/helpers') |
| 19 | + , isFunction = helpers.isFunction |
| 20 | + , constructObject = helpers.constructObject |
| 21 | + , filterForCallback = helpers.filterForCallback |
| 22 | + , constructOptionsFrom = helpers.constructOptionsFrom |
| 23 | + , paramsHaveRequestBody = helpers.paramsHaveRequestBody |
18 | 24 | ; |
19 | 25 |
|
20 | 26 | // organize params for patch, post, put, head, del |
21 | 27 | function initParams(uri, options, callback) { |
22 | 28 | callback = filterForCallback([options, callback]) |
23 | | - options = constructOptions(uri, options) |
| 29 | + options = constructOptionsFrom(uri, options) |
24 | 30 |
|
25 | 31 | return constructObject() |
26 | 32 | .extend({callback: callback}) |
@@ -90,6 +96,7 @@ request.del = function (uri, options, callback) { |
90 | 96 | request.jar = function () { |
91 | 97 | return cookies.jar() |
92 | 98 | } |
| 99 | + |
93 | 100 | request.cookie = function (str) { |
94 | 101 | return cookies.parse(str) |
95 | 102 | } |
@@ -151,47 +158,6 @@ request.forever = function (agentOptions, optionsArg) { |
151 | 158 | return request.defaults(options.done()) |
152 | 159 | } |
153 | 160 |
|
154 | | -// Helpers |
155 | | - |
156 | | -function constructObject(initialObject) { |
157 | | - initialObject = initialObject || {} |
158 | | - |
159 | | - return { |
160 | | - extend: function (object) { |
161 | | - return constructObject(extend(initialObject, object)) |
162 | | - }, |
163 | | - done: function () { |
164 | | - return initialObject |
165 | | - } |
166 | | - } |
167 | | -} |
168 | | - |
169 | | -function constructOptions(uri, options) { |
170 | | - var params = constructObject() |
171 | | - if (typeof uri === 'object') params.extend(uri) |
172 | | - if (typeof uri === 'string') params.extend({uri: uri}) |
173 | | - params.extend(options) |
174 | | - return params.done() |
175 | | -} |
176 | | - |
177 | | -function filterForCallback(values) { |
178 | | - var callbacks = values.filter(isFunction) |
179 | | - return callbacks[0] |
180 | | -} |
181 | | - |
182 | | -function isFunction(value) { |
183 | | - return typeof value === 'function' |
184 | | -} |
185 | | - |
186 | | -function paramsHaveRequestBody(params) { |
187 | | - return ( |
188 | | - params.options.body || |
189 | | - params.options.requestBodyStream || |
190 | | - (params.options.json && typeof params.options.json !== 'boolean') || |
191 | | - params.options.multipart |
192 | | - ) |
193 | | -} |
194 | | - |
195 | 161 | // Exports |
196 | 162 |
|
197 | 163 | module.exports = request |
|
0 commit comments