UNPKG

iles

Version:

Vite & Vue powered static site generator with partial hydration

34 lines (33 loc) 1.32 kB
import { useSSRContext } from 'vue'; import { hydrateWhenIdle, hydrateNow, hydrateOnMediaQuery, hydrateWhenVisible, } from '@islands/hydration'; export function newHydrationId() { if (import.meta.env.SSR) { const context = useSSRContext(); context.hydrationSerialNumber ||= 1; return `ile-${context.hydrationSerialNumber++}`; } else if (import.meta.env.DEV) { return window.__ILE_DEVTOOLS__.nextIslandId(); } } export var Hydrate; (function (Hydrate) { Hydrate["WhenIdle"] = "client:idle"; Hydrate["OnLoad"] = "client:load"; Hydrate["MediaQuery"] = "client:media"; Hydrate["SkipPrerender"] = "client:only"; Hydrate["WhenVisible"] = "client:visible"; Hydrate["None"] = "client:none"; })(Hydrate || (Hydrate = {})); export const hydrationFns = { [Hydrate.WhenIdle]: hydrateWhenIdle.name, [Hydrate.OnLoad]: hydrateNow.name, [Hydrate.MediaQuery]: hydrateOnMediaQuery.name, [Hydrate.SkipPrerender]: hydrateNow.name, [Hydrate.WhenVisible]: hydrateWhenVisible.name, [Hydrate.None]: hydrateNow.name, }; // Internal: Strategies that will hydrate instantly and don't need dynamic imports. export function isEager(strategy) { return strategy === Hydrate.OnLoad || strategy === Hydrate.SkipPrerender || strategy === Hydrate.None; }