page-loader-ivan
Version:
Web page loader
63 lines (46 loc) • 4.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.loadFile = exports.getHtml = undefined;
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _errno = require('errno');
var _errno2 = _interopRequireDefault(_errno);
var _axios = require('axios');
var _axios2 = _interopRequireDefault(_axios);
var _fs = require('mz/fs');
var _fs2 = _interopRequireDefault(_fs);
var _fs3 = require('./fs');
var _LoaderError = require('./LoaderError');
var _LoaderError2 = _interopRequireDefault(_LoaderError);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var debug = (0, _debug2.default)('page-loader:loader');
var throwUnavailableLink = function throwUnavailableLink(err, link) {
var message = 'unavailable link ' + link + ' due to reason: ' + err.message;
throw new _LoaderError2.default(_errno2.default.code.EADDRNOTAVAIL, message);
};
var getHtml = exports.getHtml = function getHtml(link) {
return _axios2.default.get(link).catch(function (err) {
return throwUnavailableLink(err, link);
}).then(function (res) {
return res.data;
});
};
var loadFile = exports.loadFile = function loadFile(link, filepath) {
debug('start load a file %s', link);
return (0, _fs3.checkCreation)(filepath).then(function () {
return (0, _axios2.default)({
method: 'get',
url: link,
responseType: 'arraybuffer'
});
}).catch(function (err) {
return throwUnavailableLink(err, link);
}).then(function (res) {
return _fs2.default.writeFile(filepath, res.data, 'base64');
}).then(function () {
return debug('end load a file %s', link);
});
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2FkZXIuanMiXSwibmFtZXMiOlsiZGVidWciLCJ0aHJvd1VuYXZhaWxhYmxlTGluayIsImVyciIsImxpbmsiLCJtZXNzYWdlIiwiTG9hZGVyRXJyb3IiLCJlcnJvcnMiLCJjb2RlIiwiRUFERFJOT1RBVkFJTCIsImdldEh0bWwiLCJheGlvcyIsImdldCIsImNhdGNoIiwidGhlbiIsInJlcyIsImRhdGEiLCJsb2FkRmlsZSIsImZpbGVwYXRoIiwibWV0aG9kIiwidXJsIiwicmVzcG9uc2VUeXBlIiwiZnMiLCJ3cml0ZUZpbGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxRQUFRLHFCQUFZLG9CQUFaLENBQWQ7O0FBRUEsSUFBTUMsdUJBQXVCLFNBQXZCQSxvQkFBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEVBQWU7QUFDMUMsTUFBTUMsZ0NBQThCRCxJQUE5Qix3QkFBcURELElBQUlFLE9BQS9EO0FBQ0EsUUFBTyxJQUFJQyxxQkFBSixDQUFnQkMsZ0JBQU9DLElBQVAsQ0FBWUMsYUFBNUIsRUFBMkNKLE9BQTNDLENBQVA7QUFDRCxDQUhEOztBQUtPLElBQU1LLDRCQUFVLFNBQVZBLE9BQVU7QUFBQSxTQUNyQkMsZ0JBQU1DLEdBQU4sQ0FBVVIsSUFBVixFQUNHUyxLQURILENBQ1M7QUFBQSxXQUFPWCxxQkFBcUJDLEdBQXJCLEVBQTBCQyxJQUExQixDQUFQO0FBQUEsR0FEVCxFQUVHVSxJQUZILENBRVE7QUFBQSxXQUFPQyxJQUFJQyxJQUFYO0FBQUEsR0FGUixDQURxQjtBQUFBLENBQWhCOztBQUtBLElBQU1DLDhCQUFXLFNBQVhBLFFBQVcsQ0FBQ2IsSUFBRCxFQUFPYyxRQUFQLEVBQW9CO0FBQzFDakIsUUFBTSxzQkFBTixFQUE4QkcsSUFBOUI7QUFDQSxTQUFPLHdCQUFjYyxRQUFkLEVBQ0pKLElBREksQ0FDQztBQUFBLFdBQU0scUJBQU07QUFDaEJLLGNBQVEsS0FEUTtBQUVoQkMsV0FBS2hCLElBRlc7QUFHaEJpQixvQkFBYztBQUhFLEtBQU4sQ0FBTjtBQUFBLEdBREQsRUFNSlIsS0FOSSxDQU1FO0FBQUEsV0FBT1gscUJBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsQ0FBUDtBQUFBLEdBTkYsRUFPSlUsSUFQSSxDQU9DO0FBQUEsV0FBT1EsYUFBR0MsU0FBSCxDQUFhTCxRQUFiLEVBQXVCSCxJQUFJQyxJQUEzQixFQUFpQyxRQUFqQyxDQUFQO0FBQUEsR0FQRCxFQVFKRixJQVJJLENBUUM7QUFBQSxXQUFNYixNQUFNLG9CQUFOLEVBQTRCRyxJQUE1QixDQUFOO0FBQUEsR0FSRCxDQUFQO0FBU0QsQ0FYTSIsImZpbGUiOiJsb2FkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGVycm9ycyBmcm9tICdlcnJubyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IGZzIGZyb20gJ216L2ZzJztcbmltcG9ydCB7IGNoZWNrQ3JlYXRpb24gfSBmcm9tICcuL2ZzJztcbmltcG9ydCBMb2FkZXJFcnJvciBmcm9tICcuL0xvYWRlckVycm9yJztcblxuY29uc3QgZGVidWcgPSBjcmVhdGVEZWJ1ZygncGFnZS1sb2FkZXI6bG9hZGVyJyk7XG5cbmNvbnN0IHRocm93VW5hdmFpbGFibGVMaW5rID0gKGVyciwgbGluaykgPT4ge1xuICBjb25zdCBtZXNzYWdlID0gYHVuYXZhaWxhYmxlIGxpbmsgJHtsaW5rfSBkdWUgdG8gcmVhc29uOiAke2Vyci5tZXNzYWdlfWA7XG4gIHRocm93IChuZXcgTG9hZGVyRXJyb3IoZXJyb3JzLmNvZGUuRUFERFJOT1RBVkFJTCwgbWVzc2FnZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEh0bWwgPSBsaW5rID0+XG4gIGF4aW9zLmdldChsaW5rKVxuICAgIC5jYXRjaChlcnIgPT4gdGhyb3dVbmF2YWlsYWJsZUxpbmsoZXJyLCBsaW5rKSlcbiAgICAudGhlbihyZXMgPT4gcmVzLmRhdGEpO1xuXG5leHBvcnQgY29uc3QgbG9hZEZpbGUgPSAobGluaywgZmlsZXBhdGgpID0+IHtcbiAgZGVidWcoJ3N0YXJ0IGxvYWQgYSBmaWxlICVzJywgbGluayk7XG4gIHJldHVybiBjaGVja0NyZWF0aW9uKGZpbGVwYXRoKVxuICAgIC50aGVuKCgpID0+IGF4aW9zKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IGxpbmssXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXG4gICAgfSkpXG4gICAgLmNhdGNoKGVyciA9PiB0aHJvd1VuYXZhaWxhYmxlTGluayhlcnIsIGxpbmspKVxuICAgIC50aGVuKHJlcyA9PiBmcy53cml0ZUZpbGUoZmlsZXBhdGgsIHJlcy5kYXRhLCAnYmFzZTY0JykpXG4gICAgLnRoZW4oKCkgPT4gZGVidWcoJ2VuZCBsb2FkIGEgZmlsZSAlcycsIGxpbmspKTtcbn07XG4iXX0=