29 lines
508 B
JavaScript
29 lines
508 B
JavaScript
'use strict';
|
|
|
|
const https = require('https');
|
|
const http = require('http');
|
|
|
|
const WritableBuffer = require('./writable-buffer');
|
|
|
|
|
|
const protocols = { http, https };
|
|
|
|
|
|
module.exports = url => new Promise((res, rej) => {
|
|
|
|
url = url.toLowerCase();
|
|
|
|
const stream = new WritableBuffer();
|
|
const proto = protocols[url.match(/^https?/)[0]];
|
|
|
|
proto.get(url, response => {
|
|
|
|
response.pipe(stream);
|
|
|
|
response.on('end', () => res(stream.get()));
|
|
response.on('error', err => rej(err));
|
|
|
|
});
|
|
|
|
});
|