Skip to content

Commit f26f865

Browse files
committed
extract out helper functions to a helper file
1 parent 49d8a68 commit f26f865

2 files changed

Lines changed: 57 additions & 45 deletions

File tree

index.js

Lines changed: 11 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,21 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

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
1824
;
1925

2026
// organize params for patch, post, put, head, del
2127
function initParams(uri, options, callback) {
2228
callback = filterForCallback([options, callback])
23-
options = constructOptions(uri, options)
29+
options = constructOptionsFrom(uri, options)
2430

2531
return constructObject()
2632
.extend({callback: callback})
@@ -90,6 +96,7 @@ request.del = function (uri, options, callback) {
9096
request.jar = function () {
9197
return cookies.jar()
9298
}
99+
93100
request.cookie = function (str) {
94101
return cookies.parse(str)
95102
}
@@ -151,47 +158,6 @@ request.forever = function (agentOptions, optionsArg) {
151158
return request.defaults(options.done())
152159
}
153160

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-
195161
// Exports
196162

197163
module.exports = request

lib/helpers.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
var extend = require('util')._extend
2+
3+
function constructObject(initialObject) {
4+
initialObject = initialObject || {}
5+
6+
return {
7+
extend: function (object) {
8+
return constructObject(extend(initialObject, object))
9+
},
10+
done: function () {
11+
return initialObject
12+
}
13+
}
14+
}
15+
16+
function constructOptionsFrom(uri, options) {
17+
var params = constructObject()
18+
if (typeof uri === 'object') params.extend(uri)
19+
if (typeof uri === 'string') params.extend({uri: uri})
20+
params.extend(options)
21+
return params.done()
22+
}
23+
24+
function filterForCallback(values) {
25+
var callbacks = values.filter(isFunction)
26+
return callbacks[0]
27+
}
28+
29+
function isFunction(value) {
30+
return typeof value === 'function'
31+
}
32+
33+
function paramsHaveRequestBody(params) {
34+
return (
35+
params.options.body ||
36+
params.options.requestBodyStream ||
37+
(params.options.json && typeof params.options.json !== 'boolean') ||
38+
params.options.multipart
39+
)
40+
}
41+
42+
exports.isFunction = isFunction
43+
exports.constructObject = constructObject
44+
exports.constructOptionsFrom = constructOptionsFrom
45+
exports.filterForCallback = filterForCallback
46+
exports.paramsHaveRequestBody = paramsHaveRequestBody

0 commit comments

Comments
 (0)