page-loader-ivan
Version:
Web page loader
65 lines (51 loc) • 6.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.exchangeToNativLinks = exports.fullLink = exports.basicNames = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _url = require('url');
var _url2 = _interopRequireDefault(_url);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var toKebabCase = function toKebabCase(str) {
return str.replace(/\W*(.*)/g, '$1').replace(/\W/g, '-');
};
var linkToNativelName = function linkToNativelName(urlPage) {
var _url$parse = _url2.default.parse(urlPage),
hostname = _url$parse.hostname,
pathname = _url$parse.pathname;
var parse = _path2.default.parse(pathname);
var pathWithoutExt = _path2.default.format(_extends({}, parse, { ext: '', base: '' }));
var str = toKebabCase(_url2.default.format({ hostname: hostname, pathname: pathWithoutExt }));
return '' + str + parse.ext;
};
var nativeLink = function nativeLink(link, local) {
return _path2.default.join(local, linkToNativelName(link));
};
var basicNames = exports.basicNames = function basicNames(page, dir) {
var pageName = linkToNativelName(page);
var filename = pageName + '.html';
var filepath = _path2.default.join(dir, filename);
var simpleDirFiles = pageName + '_files';
var dirFiles = _path2.default.join(dir, simpleDirFiles);
return {
filepath: filepath,
simpleDirFiles: simpleDirFiles,
dirFiles: dirFiles
};
};
var fullLink = exports.fullLink = function fullLink(link, urlData) {
if (_url2.default.parse(link).hostname) {
return link;
}
return _url2.default.format(_extends({}, urlData, { pathname: link }));
};
var exchangeToNativLinks = exports.exchangeToNativLinks = function exchangeToNativLinks(links, local) {
return links.map(function (link) {
var exch = { link: link, nativeLink: nativeLink(link, local) };
return exch;
});
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9uYW1lcy5qcyJdLCJuYW1lcyI6WyJ0b0tlYmFiQ2FzZSIsInN0ciIsInJlcGxhY2UiLCJsaW5rVG9OYXRpdmVsTmFtZSIsInVybFBhZ2UiLCJ1cmwiLCJwYXJzZSIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJwYXRoIiwicGF0aFdpdGhvdXRFeHQiLCJmb3JtYXQiLCJleHQiLCJiYXNlIiwibmF0aXZlTGluayIsImxpbmsiLCJsb2NhbCIsImpvaW4iLCJiYXNpY05hbWVzIiwicGFnZSIsImRpciIsInBhZ2VOYW1lIiwiZmlsZW5hbWUiLCJmaWxlcGF0aCIsInNpbXBsZURpckZpbGVzIiwiZGlyRmlsZXMiLCJmdWxsTGluayIsInVybERhdGEiLCJleGNoYW5nZVRvTmF0aXZMaW5rcyIsImxpbmtzIiwibWFwIiwiZXhjaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsY0FBYyxTQUFkQSxXQUFjO0FBQUEsU0FDbEJDLElBQ0dDLE9BREgsQ0FDVyxVQURYLEVBQ3VCLElBRHZCLEVBRUdBLE9BRkgsQ0FFVyxLQUZYLEVBRWtCLEdBRmxCLENBRGtCO0FBQUEsQ0FBcEI7O0FBS0EsSUFBTUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsT0FBRCxFQUFhO0FBQUEsbUJBQ05DLGNBQUlDLEtBQUosQ0FBVUYsT0FBVixDQURNO0FBQUEsTUFDN0JHLFFBRDZCLGNBQzdCQSxRQUQ2QjtBQUFBLE1BQ25CQyxRQURtQixjQUNuQkEsUUFEbUI7O0FBRXJDLE1BQU1GLFFBQVFHLGVBQUtILEtBQUwsQ0FBV0UsUUFBWCxDQUFkO0FBQ0EsTUFBTUUsaUJBQWlCRCxlQUFLRSxNQUFMLGNBQWlCTCxLQUFqQixJQUF3Qk0sS0FBSyxFQUE3QixFQUFpQ0MsTUFBTSxFQUF2QyxJQUF2QjtBQUNBLE1BQU1aLE1BQU1ELFlBQVlLLGNBQUlNLE1BQUosQ0FBVyxFQUFFSixrQkFBRixFQUFZQyxVQUFVRSxjQUF0QixFQUFYLENBQVosQ0FBWjtBQUNBLGNBQVVULEdBQVYsR0FBZ0JLLE1BQU1NLEdBQXRCO0FBQ0QsQ0FORDs7QUFRQSxJQUFNRSxhQUFhLFNBQWJBLFVBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxLQUFQO0FBQUEsU0FDakJQLGVBQUtRLElBQUwsQ0FBVUQsS0FBVixFQUFpQmIsa0JBQWtCWSxJQUFsQixDQUFqQixDQURpQjtBQUFBLENBQW5COztBQUdPLElBQU1HLGtDQUFhLFNBQWJBLFVBQWEsQ0FBQ0MsSUFBRCxFQUFPQyxHQUFQLEVBQWU7QUFDdkMsTUFBTUMsV0FBV2xCLGtCQUFrQmdCLElBQWxCLENBQWpCO0FBQ0EsTUFBTUcsV0FBY0QsUUFBZCxVQUFOO0FBQ0EsTUFBTUUsV0FBV2QsZUFBS1EsSUFBTCxDQUFVRyxHQUFWLEVBQWVFLFFBQWYsQ0FBakI7QUFDQSxNQUFNRSxpQkFBb0JILFFBQXBCLFdBQU47QUFDQSxNQUFNSSxXQUFXaEIsZUFBS1EsSUFBTCxDQUFVRyxHQUFWLEVBQWVJLGNBQWYsQ0FBakI7QUFDQSxTQUFPO0FBQ0xELHNCQURLO0FBRUxDLGtDQUZLO0FBR0xDO0FBSEssR0FBUDtBQUtELENBWE07O0FBYUEsSUFBTUMsOEJBQVcsU0FBWEEsUUFBVyxDQUFDWCxJQUFELEVBQU9ZLE9BQVAsRUFBbUI7QUFDekMsTUFBSXRCLGNBQUlDLEtBQUosQ0FBVVMsSUFBVixFQUFnQlIsUUFBcEIsRUFBOEI7QUFDNUIsV0FBT1EsSUFBUDtBQUNEO0FBQ0QsU0FBT1YsY0FBSU0sTUFBSixjQUFnQmdCLE9BQWhCLElBQXlCbkIsVUFBVU8sSUFBbkMsSUFBUDtBQUNELENBTE07O0FBT0EsSUFBTWEsc0RBQXVCLFNBQXZCQSxvQkFBdUIsQ0FBQ0MsS0FBRCxFQUFRYixLQUFSO0FBQUEsU0FDbENhLE1BQU1DLEdBQU4sQ0FBVSxVQUFDZixJQUFELEVBQVU7QUFDbEIsUUFBTWdCLE9BQU8sRUFBRWhCLFVBQUYsRUFBUUQsWUFBWUEsV0FBV0MsSUFBWCxFQUFpQkMsS0FBakIsQ0FBcEIsRUFBYjtBQUNBLFdBQU9lLElBQVA7QUFDRCxHQUhELENBRGtDO0FBQUEsQ0FBN0IiLCJmaWxlIjoibmFtZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXJsIGZyb20gJ3VybCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgdG9LZWJhYkNhc2UgPSBzdHIgPT5cbiAgc3RyXG4gICAgLnJlcGxhY2UoL1xcVyooLiopL2csICckMScpXG4gICAgLnJlcGxhY2UoL1xcVy9nLCAnLScpO1xuXG5jb25zdCBsaW5rVG9OYXRpdmVsTmFtZSA9ICh1cmxQYWdlKSA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lIH0gPSB1cmwucGFyc2UodXJsUGFnZSk7XG4gIGNvbnN0IHBhcnNlID0gcGF0aC5wYXJzZShwYXRobmFtZSk7XG4gIGNvbnN0IHBhdGhXaXRob3V0RXh0ID0gcGF0aC5mb3JtYXQoeyAuLi5wYXJzZSwgZXh0OiAnJywgYmFzZTogJycgfSk7XG4gIGNvbnN0IHN0ciA9IHRvS2ViYWJDYXNlKHVybC5mb3JtYXQoeyBob3N0bmFtZSwgcGF0aG5hbWU6IHBhdGhXaXRob3V0RXh0IH0pKTtcbiAgcmV0dXJuIGAke3N0cn0ke3BhcnNlLmV4dH1gO1xufTtcblxuY29uc3QgbmF0aXZlTGluayA9IChsaW5rLCBsb2NhbCkgPT5cbiAgcGF0aC5qb2luKGxvY2FsLCBsaW5rVG9OYXRpdmVsTmFtZShsaW5rKSk7XG5cbmV4cG9ydCBjb25zdCBiYXNpY05hbWVzID0gKHBhZ2UsIGRpcikgPT4ge1xuICBjb25zdCBwYWdlTmFtZSA9IGxpbmtUb05hdGl2ZWxOYW1lKHBhZ2UpO1xuICBjb25zdCBmaWxlbmFtZSA9IGAke3BhZ2VOYW1lfS5odG1sYDtcbiAgY29uc3QgZmlsZXBhdGggPSBwYXRoLmpvaW4oZGlyLCBmaWxlbmFtZSk7XG4gIGNvbnN0IHNpbXBsZURpckZpbGVzID0gYCR7cGFnZU5hbWV9X2ZpbGVzYDtcbiAgY29uc3QgZGlyRmlsZXMgPSBwYXRoLmpvaW4oZGlyLCBzaW1wbGVEaXJGaWxlcyk7XG4gIHJldHVybiB7XG4gICAgZmlsZXBhdGgsXG4gICAgc2ltcGxlRGlyRmlsZXMsXG4gICAgZGlyRmlsZXMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZnVsbExpbmsgPSAobGluaywgdXJsRGF0YSkgPT4ge1xuICBpZiAodXJsLnBhcnNlKGxpbmspLmhvc3RuYW1lKSB7XG4gICAgcmV0dXJuIGxpbms7XG4gIH1cbiAgcmV0dXJuIHVybC5mb3JtYXQoeyAuLi51cmxEYXRhLCBwYXRobmFtZTogbGluayB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBleGNoYW5nZVRvTmF0aXZMaW5rcyA9IChsaW5rcywgbG9jYWwpID0+XG4gIGxpbmtzLm1hcCgobGluaykgPT4ge1xuICAgIGNvbnN0IGV4Y2ggPSB7IGxpbmssIG5hdGl2ZUxpbms6IG5hdGl2ZUxpbmsobGluaywgbG9jYWwpIH07XG4gICAgcmV0dXJuIGV4Y2g7XG4gIH0pO1xuIl19