1+ import type { Component , Ref , ShallowRef } from "vue" ;
12import {
2- Component ,
33 computed ,
4- createSSRApp as VueCreateSSRApp ,
4+ createSSRApp as vueCreateSSRApp ,
55 defineComponent ,
66 h ,
77 onBeforeUnmount ,
8- Ref ,
98 ref ,
10- ShallowRef ,
119 shallowRef ,
1210 watch ,
1311} from "vue" ;
14- import { matchRoutes , Route , RouteMeta , RouteModule , Routes } from "../core/route.ts" ;
12+ import type { Route , RouteMeta , RouteModule , RouteRecord } from "../core/route.ts" ;
13+ import { matchRoutes } from "../core/route.ts" ;
1514import events from "../core/events.ts" ;
1615import FetchError from "../core/fetch_error.ts" ;
16+ import { URLPatternCompat } from "../core/url_pattern.ts" ;
1717import type { SSRContext } from "../../server/renderer.ts" ;
1818import { RouterContext } from "./context.ts" ;
1919import { Link } from "./link.ts" ;
2020import { Head } from "./head.ts" ;
2121import { Err } from "./error.ts" ;
22- import { URLPatternCompat } from "../core/url_pattern.ts" ;
2322
2423// deno-lint-ignore no-explicit-any
2524const global = window as any ;
@@ -143,10 +142,10 @@ const createRouter = (props: RouterProps) => {
143142 } ;
144143 const dataUrl = rmod . url . pathname + rmod . url . search ;
145144 if ( filename in routeModules ) {
146- rmod . defaultExport = routeModules [ filename ] . defaultExport ;
145+ Object . assign ( rmod , routeModules [ filename ] ) ;
147146 } else {
148- const { defaultExport } = await importModule ( meta ) ;
149- rmod . defaultExport = defaultExport ;
147+ const { defaultExport, withData } = await importModule ( meta ) ;
148+ Object . assign ( rmod , { defaultExport, withData } ) ;
150149 }
151150 if ( ! dataCache . has ( dataUrl ) && routeModules [ filename ] ?. withData === true ) {
152151 await prefetchData ( dataUrl ) ;
@@ -227,7 +226,7 @@ const createAppApi = (props?: RootProps) => {
227226 const modules = shallowRef ( ssrContext ?. routeModules || loadSSRModulesFromTag ( ) ) ;
228227
229228 if ( modules . value . length === 0 ) {
230- return VueCreateSSRApp ( Err , { status : 404 , message : "page not found" } ) ;
229+ return vueCreateSSRApp ( Err , { status : 404 , message : "page not found" } ) ;
231230 }
232231
233232 const url = ref ( ssrContext ?. url || new URL ( window . location ?. href ) ) ;
@@ -246,7 +245,7 @@ const createAppApi = (props?: RootProps) => {
246245 } ,
247246 } ) ;
248247
249- const app = VueCreateSSRApp ( App ) ;
248+ const app = vueCreateSSRApp ( App ) ;
250249
251250 app . provide ( "modules" , modules ) ;
252251 app . provide ( "dataCache" , dataCache ) ;
@@ -261,7 +260,7 @@ const createAppApi = (props?: RootProps) => {
261260 return app ;
262261 }
263262
264- const errApp = VueCreateSSRApp ( Err ) ;
263+ const errApp = vueCreateSSRApp ( Err ) ;
265264
266265 return errApp ;
267266} ;
@@ -340,7 +339,7 @@ function getLoadingBar(): HTMLDivElement {
340339 return bar ;
341340}
342341
343- function loadRoutesFromTag ( ) : Routes {
342+ function loadRoutesFromTag ( ) : RouteRecord {
344343 const el = window . document ?. getElementById ( "routes-manifest" ) ;
345344 if ( el ) {
346345 try {
0 commit comments