@web/rollup-plugin-html
Version:
Rollup plugin for bundling HTML files
37 lines • 1.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.injectAbsoluteBaseUrl = void 0;
const parse5_utils_1 = require("@web/parse5-utils");
function isAbsoluteableNode(node) {
const metaAttributes = ['og:url', 'og:image'];
switch ((0, parse5_utils_1.getTagName)(node)) {
case 'link':
if ((0, parse5_utils_1.getAttribute)(node, 'rel') === 'canonical' && (0, parse5_utils_1.getAttribute)(node, 'href')) {
return true;
}
return false;
case 'meta':
if (metaAttributes.includes((0, parse5_utils_1.getAttribute)(node, 'property')) &&
(0, parse5_utils_1.getAttribute)(node, 'content')) {
return true;
}
return false;
default:
return false;
}
}
function injectAbsoluteBaseUrl(document, absoluteBaseUrl) {
const nodes = (0, parse5_utils_1.findElements)(document, isAbsoluteableNode);
for (const node of nodes) {
switch ((0, parse5_utils_1.getTagName)(node)) {
case 'link':
(0, parse5_utils_1.setAttribute)(node, 'href', new URL((0, parse5_utils_1.getAttribute)(node, 'href'), absoluteBaseUrl).href);
break;
case 'meta':
(0, parse5_utils_1.setAttribute)(node, 'content', new URL((0, parse5_utils_1.getAttribute)(node, 'content'), absoluteBaseUrl).href);
break;
}
}
}
exports.injectAbsoluteBaseUrl = injectAbsoluteBaseUrl;
//# sourceMappingURL=injectAbsoluteBaseUrl.js.map
;