iles
Version:
Vite & Vue powered static site generator with partial hydration
33 lines (32 loc) • 1.19 kB
JavaScript
import { useSSRContext } from 'vue';
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',
[Hydrate.OnLoad]: 'hydrateNow',
[Hydrate.MediaQuery]: 'hydrateOnMediaQuery',
[Hydrate.SkipPrerender]: 'hydrateNow',
[Hydrate.WhenVisible]: 'hydrateWhenVisible',
[Hydrate.None]: 'hydrateNow',
};
// 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;
}