'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()