import domify from 'doma'; import mem from 'mem'; async function fetchDom(url: string): Promise; async function fetchDom(url: string, selector: string): Promise; async function fetchDom(url: string, selector?: string): Promise { const urlObject = new URL(url, location.origin); const response = await fetch(String(urlObject)); const dom = domify(await response.text()); return selector ? dom.querySelector(selector)! : dom; } export default mem(fetchDom);