UNPKG

@nuxt/test-utils

Version:
22 lines (21 loc) 1.02 kB
import { Suspense, defineComponent, h, onErrorCaptured, provide } from "vue"; import { isNuxtError, useNuxtApp, useRoute } from "#imports"; import { PageRouteSymbol } from "#app/components/injections"; export default defineComponent({ setup(_options, { slots }) { const nuxtApp = useNuxtApp(); provide(PageRouteSymbol, useRoute()); const done = nuxtApp.deferHydration(); const results = nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup"); if (import.meta.dev && results && results.some((i) => i && "then" in i)) { console.error("[nuxt] Error in `vue:setup`. Callbacks must be synchronous."); } onErrorCaptured((err, target, info) => { nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError)); if (isNuxtError(err) && (err.fatal || err.unhandled)) { return false; } }); return () => h(Suspense, { onResolve: done }, slots.default?.()); } });