| 'use strict' |
| |
| var jsonSafeStringify = require('json-stringify-safe') |
| , crypto = require('crypto') |
| |
| function deferMethod() { |
| if(typeof setImmediate === 'undefined') { |
| return process.nextTick |
| } |
| |
| return setImmediate |
| } |
| |
| function isFunction(value) { |
| return typeof value === 'function' |
| } |
| |
| function paramsHaveRequestBody(params) { |
| return ( |
| params.body || |
| params.requestBodyStream || |
| (params.json && typeof params.json !== 'boolean') || |
| params.multipart |
| ) |
| } |
| |
| function safeStringify (obj) { |
| var ret |
| try { |
| ret = JSON.stringify(obj) |
| } catch (e) { |
| ret = jsonSafeStringify(obj) |
| } |
| return ret |
| } |
| |
| function md5 (str) { |
| return crypto.createHash('md5').update(str).digest('hex') |
| } |
| |
| function isReadStream (rs) { |
| return rs.readable && rs.path && rs.mode |
| } |
| |
| function toBase64 (str) { |
| return (new Buffer(str || '', 'utf8')).toString('base64') |
| } |
| |
| exports.isFunction = isFunction |
| exports.paramsHaveRequestBody = paramsHaveRequestBody |
| exports.safeStringify = safeStringify |
| exports.md5 = md5 |
| exports.isReadStream = isReadStream |
| exports.toBase64 = toBase64 |
| exports.defer = deferMethod() |