@roots/bud-client
Version:
Client scripts for @roots/bud
19 lines (18 loc) • 810 B
JavaScript
const intercept = (...args) => {
args.every(arg => typeof arg === `string`) &&
setInterval(() => [
[document.getElementsByTagName(`a`), `href`],
[document.getElementsByTagName(`link`), `href`],
]
.map(([elements, attribute]) => [Array.from(elements), attribute])
.forEach(([elements, attribute]) => elements
.filter(el => el.hasAttribute(attribute))
.filter(el => !el.hasAttribute(`__bud_processed`))
.filter(el => el.getAttribute(attribute).startsWith(args[0]))
.map(el => {
const value = el.getAttribute(attribute).replace(...args);
el.setAttribute(attribute, value);
el.toggleAttribute(`__bud_processed`);
})), 1000);
};
export default intercept;