You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
async function getViteClient(base = "/", warning = true) { try { const url = `${base}@vite/client`; const res = await fetch(url); const text = await res.text(); if (text.startsWith("<") || !res.headers.get("content-type")?.includes("javascript")) throw new Error("Not javascript"); return await import( /* @vite-ignore */ url ); } catch { if (warning) console.error(`[vite-hot-client] Failed to import "${base}@vite/client"`); } return void 0;}async function createHotContext(path = "/____", base = "/") { const viteClient = await getViteClient(base); return viteClient?.createHotContext(path);}function guessBasesFromPathname(pathname = window.location.pathname) { return pathname.split("/").map((i, idx, arr) => arr.slice(0, idx + 1).join("/") || "/");}async function tryCreateHotContext(path = "/___", bases) { bases = bases ?? guessBasesFromPathname(); for (const base of bases) { const viteClient = await getViteClient(base, false); const hot = viteClient?.createHotContext(path); if (hot) return hot; } console.error("[vite-hot-client] Failed to import vite client, tried with:", bases);}
export { createHotContext, getViteClient, guessBasesFromPathname, tryCreateHotContext };
|