UNPKG

@roots/bud-client

Version:

Client scripts for @roots/bud

19 lines (18 loc) 810 B
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;