first commit
This commit is contained in:
39
build/lib/request.js
Normal file
39
build/lib/request.js
Normal file
@@ -0,0 +1,39 @@
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
const {promisify} = require('util')
|
||||
|
||||
https.get[promisify.custom] = function getAsyncHttps (options) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = https.get(options, res => {
|
||||
if (res.statusCode >= 400) return reject(new Error(res.statusCode))
|
||||
res.end = new Promise(resolve => res.on('end', resolve))
|
||||
resolve(res)
|
||||
})
|
||||
req.on('error', reject)
|
||||
req.on('timeout', () => reject(new Error('timeout')) && req.abort())
|
||||
})
|
||||
}
|
||||
|
||||
http.get[promisify.custom] = function getAsyncHttp (options) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = http.get(options, res => {
|
||||
if (res.statusCode >= 400) return reject(new Error(res.statusCode))
|
||||
res.end = new Promise(resolve => res.on('end', resolve))
|
||||
resolve(res)
|
||||
})
|
||||
req.on('error', reject)
|
||||
req.on('timeout', () => reject(new Error('timeout')) && req.abort())
|
||||
})
|
||||
}
|
||||
|
||||
const parseJSONData = (data, resolve, reject) => {
|
||||
try {
|
||||
resolve(JSON.parse(data.read()))
|
||||
} catch (error) {
|
||||
reject(error)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.parseJSONData = parseJSONData
|
||||
module.exports.httpsGetAsync = promisify(https.get)
|
||||
module.exports.httpGetAsync = promisify(http.get)
|
||||
Reference in New Issue
Block a user