3 var jsonSafeStringify = require('json-stringify-safe')
4 , crypto = require('crypto')
6 var defer = typeof setImmediate === 'undefined'
10 function paramsHaveRequestBody(params) {
13 params.requestBodyStream ||
14 (params.json && typeof params.json !== 'boolean') ||
19 function safeStringify (obj, replacer) {
22 ret = JSON.stringify(obj, replacer)
24 ret = jsonSafeStringify(obj, replacer)
30 return crypto.createHash('md5').update(str).digest('hex')
33 function isReadStream (rs) {
34 return rs.readable && rs.path && rs.mode
37 function toBase64 (str) {
38 return (new Buffer(str || '', 'utf8')).toString('base64')
43 Object.keys(obj).forEach(function (i) {
50 var numbers = process.version.replace('v', '').split('.')
52 major: parseInt(numbers[0], 10),
53 minor: parseInt(numbers[1], 10),
54 patch: parseInt(numbers[2], 10)
58 exports.paramsHaveRequestBody = paramsHaveRequestBody
59 exports.safeStringify = safeStringify
61 exports.isReadStream = isReadStream
62 exports.toBase64 = toBase64
64 exports.version = version