UNPKG

nuxt

Version:

Nuxt is a free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js.

29 lines (28 loc) 840 B
import { createVNode, defineComponent, onErrorCaptured } from "vue"; import { injectHead } from "../composables/head.js"; import { createError } from "../composables/error.js"; import { islandComponents } from "#build/components.islands.mjs"; export default defineComponent({ name: "IslandRenderer", props: { context: { type: Object, required: true } }, setup(props) { const head = injectHead(); head.entries.clear(); const component = islandComponents[props.context.name]; if (!component) { throw createError({ status: 404, statusText: `Island component not found: ${props.context.name}` }); } onErrorCaptured((e) => { console.log(e); }); return () => createVNode(component || "span", { ...props.context.props, "data-island-uid": "" }); } });