UNPKG

epub-full-text-search

Version:
56 lines (42 loc) 1.96 kB
'use strict'; var _Logger = require('./Logger'); var _Logger2 = _interopRequireDefault(_Logger); var _url = require('url'); var _url2 = _interopRequireDefault(_url); var _httpsProxyAgent = require('https-proxy-agent'); var _httpsProxyAgent2 = _interopRequireDefault(_httpsProxyAgent); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var proxy = process.env.http_proxy || 'http://192.168.1.135:8080'; var Helper = {}; Helper.getContent = function (endpoint) { // from here https://www.tomas-dvorak.cz/posts/nodejs-request-without-dependencies/ return new Promise(function (resolve, reject) { _Logger2.default.log('info', 'attempting to GET %j', endpoint); // select http or https module, depending on reqested url var lib = endpoint.startsWith('https') ? require('https') : require('http'); var options = _url2.default.parse(endpoint); var agent = new _httpsProxyAgent2.default(proxy); // options.agent = agent; // uncomment to set proxy settings var request = lib.get(options, function (response) { // handle http errors if (response.statusCode < 200 || response.statusCode > 299) { reject(new Error('Failed to load page for normalization, status code: ' + response.statusCode)); } // temporary data holder var body = []; // on every content chunk, push it to the data array response.on('data', function (chunk) { return body.push(chunk); }); // we are done, resolve promise with those joined chunks response.on('end', function () { return resolve(body.join('')); }); }); // handle connection errors of the request request.on('error', function (err) { return reject(err); }); }); }; module.exports = Helper;