UNPKG

indieauth-authentication

Version:

A helper class for creating apps that authenticate via IndieAuth

42 lines (35 loc) 1.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (htmlString, url) { var rels = {}; var baseUrl = url; var doc = new DOMParser().parseFromString(htmlString, 'text/html'); var baseEl = doc.querySelector('base[href]'); var relEls = doc.querySelectorAll('[rel][href]'); if (baseEl) { var value = baseEl.getAttribute('href'); var urlObj = new URL(value, url); baseUrl = urlObj.toString(); } if (relEls.length) { relEls.forEach(function (relEl) { var names = relEl.getAttribute('rel').toLowerCase().split('\\s+'); var value = relEl.getAttribute('href'); if (names.length && value !== null) { names.forEach(function (name) { if (!rels[name]) { rels[name] = []; } var url = new URL(value, baseUrl).toString(); if (rels[name].indexOf(url) === -1) { rels[name].push(url); } }); } }); } return rels; }; module.exports = exports['default'];