in src/utils.ts [154:181]
export function fetchUri(uri: string, options: https.RequestOptions = {}): Promise<string> {
return new Promise((resolve, reject) => {
const parsedUrl = url.parse(uri);
const get = (parsedUrl.protocol === 'https:' ? https.get : http.get);
options = {
rejectUnauthorized: false,
...parsedUrl,
...options,
} as http.RequestOptions;
get(options, response => {
let responseData = '';
response.on('data', chunk => {
responseData += chunk;
});
response.on('end', () => {
// Sometimes the 'error' event is not fired. Double check here.
if (response.statusCode === 200) {
resolve(responseData);
} else {
reject(new Error(responseData.trim()));
}
});
}).on('error', e => {
reject(e);
});
});
}