67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| var jsonSafeStringify = require('json-stringify-safe')
 | |
| var crypto = require('crypto')
 | |
| var Buffer = require('safe-buffer').Buffer
 | |
| 
 | |
| var defer = typeof setImmediate === 'undefined'
 | |
|   ? process.nextTick
 | |
|   : setImmediate
 | |
| 
 | |
| function paramsHaveRequestBody (params) {
 | |
|   return (
 | |
|     params.body ||
 | |
|     params.requestBodyStream ||
 | |
|     (params.json && typeof params.json !== 'boolean') ||
 | |
|     params.multipart
 | |
|   )
 | |
| }
 | |
| 
 | |
| function safeStringify (obj, replacer) {
 | |
|   var ret
 | |
|   try {
 | |
|     ret = JSON.stringify(obj, replacer)
 | |
|   } catch (e) {
 | |
|     ret = jsonSafeStringify(obj, replacer)
 | |
|   }
 | |
|   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 Buffer.from(str || '', 'utf8').toString('base64')
 | |
| }
 | |
| 
 | |
| function copy (obj) {
 | |
|   var o = {}
 | |
|   Object.keys(obj).forEach(function (i) {
 | |
|     o[i] = obj[i]
 | |
|   })
 | |
|   return o
 | |
| }
 | |
| 
 | |
| function version () {
 | |
|   var numbers = process.version.replace('v', '').split('.')
 | |
|   return {
 | |
|     major: parseInt(numbers[0], 10),
 | |
|     minor: parseInt(numbers[1], 10),
 | |
|     patch: parseInt(numbers[2], 10)
 | |
|   }
 | |
| }
 | |
| 
 | |
| exports.paramsHaveRequestBody = paramsHaveRequestBody
 | |
| exports.safeStringify = safeStringify
 | |
| exports.md5 = md5
 | |
| exports.isReadStream = isReadStream
 | |
| exports.toBase64 = toBase64
 | |
| exports.copy = copy
 | |
| exports.version = version
 | |
| exports.defer = defer
 |