UNPKG

986 BJavaScriptView Raw
1var fs = require('fs')
2var stream = require('stream')
3var http = require('request')
4
5module.exports = request
6
7function request(url, params, body, cb) {
8 var requester = doRequest(url, params, cb)
9
10 if (params.url || params.get) {
11 return requester('GET')
12 }
13
14 return read(body).pipe(requester('POST'))
15}
16
17function doRequest(url, params, cb) {
18 return function (method) {
19 return http({
20 url: url,
21 qs: params,
22 method: method,
23 strictSSL: false
24 }, cb)
25 }
26}
27
28function read(image) {
29 if (typeof image === 'string') {
30 return readFromString(image)
31 }
32
33 if (isStream(image) === false) {
34 throw new TypeError('Image should be a string or readable stream')
35 }
36
37 return image
38}
39
40function readFromString(image) {
41 if (isUrl(image)) {
42 return http(image, { strictSSL: false })
43 }
44 return fs.createReadStream(image)
45}
46
47function isStream(obj) {
48 return obj instanceof stream.Stream
49}
50
51function isUrl(str) {
52 return /^http[s]?/i.test(str)
53}