UNPKG

@islands/hydration

Version:

Hydration utilities for îles

25 lines (23 loc) 894 B
import { onDispose } from "./chunk-AX6GSPTT.js"; // solid.ts import { hydrate, render, createComponent } from "solid-js/web"; function createIsland(component, id, el, props, slots) { if (import.meta.env.DEV) window._$HY ||= { events: [], completed: /* @__PURE__ */ new WeakSet(), r: {} }; const dispose = (import.meta.env.DEV ? render : hydrate)(() => createComponent(component, { ...props, children: createContent(slots) }), el, { renderId: id }); if (import.meta.env.DISPOSE_ISLANDS) onDispose(id, dispose); if (import.meta.env.DEV) window.__ILE_DEVTOOLS__?.onHydration({ id, el, props, slots, component, framework: "solid" }); } function createContent(slots) { if (!slots?.default) return; const content = document.createElement("iles-content"); content.innerHTML = slots.default; return Array.from(content.childNodes); } export { createIsland as default };