UNPKG

page-loader-ivan

Version:
63 lines (48 loc) 4.38 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.localLinks = exports.links = undefined; var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); var _cheerio = require('cheerio'); var _cheerio2 = _interopRequireDefault(_cheerio); 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 debug = (0, _debug2.default)('page-loader:parser'); var sourcesTag = [{ tag: 'script', src: 'src' }, { tag: 'link', src: 'href' }, { tag: 'img', src: 'src' }]; var links = exports.links = function links(html) { var $ = _cheerio2.default.load(html); var arr = []; sourcesTag.forEach(function (srcTag) { $(srcTag.tag).each(function (i, element) { var src = $(element).attr(srcTag.src); if (src) { arr.push(src); debug('found a link %s', src); } }); }); return arr; }; var isLocalLink = function isLocalLink(link) { return !_url2.default.parse(link).hostname && !!_path2.default.parse(link).ext; }; var localLinks = exports.localLinks = function localLinks(html) { var arr = links(html).filter(isLocalLink); debug('found %d local links', arr.length); return arr; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZXIuanMiXSwibmFtZXMiOlsiZGVidWciLCJzb3VyY2VzVGFnIiwidGFnIiwic3JjIiwibGlua3MiLCJodG1sIiwiJCIsImNoZWVyaW8iLCJsb2FkIiwiYXJyIiwiZm9yRWFjaCIsInNyY1RhZyIsImVhY2giLCJpIiwiZWxlbWVudCIsImF0dHIiLCJwdXNoIiwiaXNMb2NhbExpbmsiLCJ1cmwiLCJwYXJzZSIsImxpbmsiLCJob3N0bmFtZSIsInBhdGgiLCJleHQiLCJsb2NhbExpbmtzIiwiZmlsdGVyIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFFBQVEscUJBQVksb0JBQVosQ0FBZDs7QUFFQSxJQUFNQyxhQUFhLENBQ2pCO0FBQ0VDLE9BQUssUUFEUDtBQUVFQyxPQUFLO0FBRlAsQ0FEaUIsRUFLakI7QUFDRUQsT0FBSyxNQURQO0FBRUVDLE9BQUs7QUFGUCxDQUxpQixFQVNqQjtBQUNFRCxPQUFLLEtBRFA7QUFFRUMsT0FBSztBQUZQLENBVGlCLENBQW5COztBQWNPLElBQU1DLHdCQUFRLFNBQVJBLEtBQVEsQ0FBQ0MsSUFBRCxFQUFVO0FBQzdCLE1BQU1DLElBQUlDLGtCQUFRQyxJQUFSLENBQWFILElBQWIsQ0FBVjtBQUNBLE1BQU1JLE1BQU0sRUFBWjtBQUNBUixhQUFXUyxPQUFYLENBQW1CLFVBQUNDLE1BQUQsRUFBWTtBQUM3QkwsTUFBRUssT0FBT1QsR0FBVCxFQUFjVSxJQUFkLENBQW1CLFVBQUNDLENBQUQsRUFBSUMsT0FBSixFQUFnQjtBQUNqQyxVQUFNWCxNQUFNRyxFQUFFUSxPQUFGLEVBQVdDLElBQVgsQ0FBZ0JKLE9BQU9SLEdBQXZCLENBQVo7QUFDQSxVQUFJQSxHQUFKLEVBQVM7QUFDUE0sWUFBSU8sSUFBSixDQUFTYixHQUFUO0FBQ0FILGNBQU0saUJBQU4sRUFBeUJHLEdBQXpCO0FBQ0Q7QUFDRixLQU5EO0FBT0QsR0FSRDtBQVNBLFNBQU9NLEdBQVA7QUFDRCxDQWJNOztBQWVQLElBQU1RLGNBQWMsU0FBZEEsV0FBYztBQUFBLFNBQ2xCLENBQUNDLGNBQUlDLEtBQUosQ0FBVUMsSUFBVixFQUFnQkMsUUFBakIsSUFBNkIsQ0FBQyxDQUFDQyxlQUFLSCxLQUFMLENBQVdDLElBQVgsRUFBaUJHLEdBRDlCO0FBQUEsQ0FBcEI7O0FBR08sSUFBTUMsa0NBQWEsU0FBYkEsVUFBYSxDQUFDbkIsSUFBRCxFQUFVO0FBQ2xDLE1BQU1JLE1BQU1MLE1BQU1DLElBQU4sRUFBWW9CLE1BQVosQ0FBbUJSLFdBQW5CLENBQVo7QUFDQWpCLFFBQU0sc0JBQU4sRUFBOEJTLElBQUlpQixNQUFsQztBQUNBLFNBQU9qQixHQUFQO0FBQ0QsQ0FKTSIsImZpbGUiOiJwYXJzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGNoZWVyaW8gZnJvbSAnY2hlZXJpbyc7XG5pbXBvcnQgdXJsIGZyb20gJ3VybCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgZGVidWcgPSBjcmVhdGVEZWJ1ZygncGFnZS1sb2FkZXI6cGFyc2VyJyk7XG5cbmNvbnN0IHNvdXJjZXNUYWcgPSBbXG4gIHtcbiAgICB0YWc6ICdzY3JpcHQnLFxuICAgIHNyYzogJ3NyYycsXG4gIH0sXG4gIHtcbiAgICB0YWc6ICdsaW5rJyxcbiAgICBzcmM6ICdocmVmJyxcbiAgfSxcbiAge1xuICAgIHRhZzogJ2ltZycsXG4gICAgc3JjOiAnc3JjJyxcbiAgfV07XG5cbmV4cG9ydCBjb25zdCBsaW5rcyA9IChodG1sKSA9PiB7XG4gIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoaHRtbCk7XG4gIGNvbnN0IGFyciA9IFtdO1xuICBzb3VyY2VzVGFnLmZvckVhY2goKHNyY1RhZykgPT4ge1xuICAgICQoc3JjVGFnLnRhZykuZWFjaCgoaSwgZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc3JjID0gJChlbGVtZW50KS5hdHRyKHNyY1RhZy5zcmMpO1xuICAgICAgaWYgKHNyYykge1xuICAgICAgICBhcnIucHVzaChzcmMpO1xuICAgICAgICBkZWJ1ZygnZm91bmQgYSBsaW5rICVzJywgc3JjKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBhcnI7XG59O1xuXG5jb25zdCBpc0xvY2FsTGluayA9IGxpbmsgPT5cbiAgIXVybC5wYXJzZShsaW5rKS5ob3N0bmFtZSAmJiAhIXBhdGgucGFyc2UobGluaykuZXh0O1xuXG5leHBvcnQgY29uc3QgbG9jYWxMaW5rcyA9IChodG1sKSA9PiB7XG4gIGNvbnN0IGFyciA9IGxpbmtzKGh0bWwpLmZpbHRlcihpc0xvY2FsTGluayk7XG4gIGRlYnVnKCdmb3VuZCAlZCBsb2NhbCBsaW5rcycsIGFyci5sZW5ndGgpO1xuICByZXR1cm4gYXJyO1xufTtcbiJdfQ==