Skip to content

Commit 460dfa2

Browse files
committed
https-request: add a function to retrieve HTML from a URL
This is needed for the upcoming patch to retrieve Cygwin's release notes URL from their home page. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 0575045 commit 460dfa2

1 file changed

Lines changed: 37 additions & 1 deletion

File tree

GitForWindowsHelper/https-request.js

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,43 @@ const doesURLReturn404 = async url => {
8888
})
8989
}
9090

91+
const fetchHTML = async url => {
92+
const options = parseURL(url)
93+
options.headers = {
94+
'User-Agent': 'GitForWindowsHelper/0.0',
95+
Accept: 'text/html'
96+
}
97+
return new Promise((resolve, reject) => {
98+
try {
99+
const https = require('https')
100+
const req = https.request(options, res => {
101+
res.on('error', e => reject(e))
102+
103+
const chunks = []
104+
res.on('data', data => chunks.push(data))
105+
res.on('end', () => {
106+
const html = Buffer.concat(chunks).toString('utf-8')
107+
if (res.statusCode > 299) {
108+
reject({
109+
statusCode: res.statusCode,
110+
statusMessage: res.statusMessage,
111+
body: html
112+
})
113+
} else {
114+
resolve(html)
115+
}
116+
})
117+
})
118+
req.on('error', err => reject(err))
119+
req.end()
120+
} catch (e) {
121+
reject(e)
122+
}
123+
})
124+
}
125+
91126
module.exports = {
92127
httpsRequest,
93-
doesURLReturn404
128+
doesURLReturn404,
129+
fetchHTML
94130
}

0 commit comments

Comments
 (0)