@islands/hydration
Version:
Hydration utilities for îles
25 lines (23 loc) • 894 B
JavaScript
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
};