indieauth-authentication
Version:
A helper class for creating apps that authenticate via IndieAuth
42 lines (35 loc) • 1.05 kB
JavaScript
;
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'];