@@ -148,38 +148,6 @@ export function loadRouterFromTag(): Router {
148148 return { routes : [ ] , prefix : "" } ;
149149}
150150
151- // fetch route data
152- export async function fetchRouteData ( dataCache : Map < string , RouteData > , dataUrl : string , defer ?: boolean ) {
153- const rd : RouteData = { } ;
154- const fetchData = async ( ) => {
155- const res = await fetch ( dataUrl + ( dataUrl . includes ( "?" ) ? "&" : "?" ) + "_data_" ) ;
156- if ( ! res . ok ) {
157- const err = await FetchError . fromResponse ( res ) ;
158- const details = err . details as { redirect ?: { location : string } } ;
159- if ( err . status === 501 && typeof details . redirect ?. location === "string" ) {
160- location . href = details . redirect ?. location ;
161- return ;
162- }
163- return err ;
164- }
165- try {
166- const data = await res . json ( ) ;
167- const cc = res . headers . get ( "Cache-Control" ) ;
168- rd . dataCacheTtl = cc ?. includes ( "max-age=" ) ? parseInt ( cc . split ( "max-age=" ) [ 1 ] ) : undefined ;
169- rd . dataExpires = Date . now ( ) + ( rd . dataCacheTtl || 1 ) * 1000 ;
170- return data ;
171- } catch ( _e ) {
172- return new Error ( "Data must be valid JSON" ) ;
173- }
174- } ;
175- if ( defer ) {
176- rd . data = fetchData ;
177- } else {
178- rd . data = await fetchData ( ) ;
179- }
180- dataCache . set ( dataUrl , rd ) ;
181- }
182-
183151export function loadSSRModulesFromTag ( ) : RouteModule [ ] {
184152 const { getRouteModule } = Reflect . get ( window , "__aleph" ) ;
185153 const el = window . document . getElementById ( "ssr-data" ) ;
@@ -224,6 +192,37 @@ export function loadSSRModulesFromTag(): RouteModule[] {
224192 return [ ] ;
225193}
226194
195+ export async function fetchRouteData ( dataCache : Map < string , RouteData > , dataUrl : string , defer ?: boolean ) {
196+ const rd : RouteData = { } ;
197+ const fetchData = async ( ) => {
198+ const res = await fetch ( dataUrl + ( dataUrl . includes ( "?" ) ? "&" : "?" ) + "_data_" ) ;
199+ if ( ! res . ok ) {
200+ const err = await FetchError . fromResponse ( res ) ;
201+ const details = err . details as { redirect ?: { location : string } } ;
202+ if ( err . status === 501 && typeof details . redirect ?. location === "string" ) {
203+ location . href = details . redirect ?. location ;
204+ return ;
205+ }
206+ return err ;
207+ }
208+ try {
209+ const data = await res . json ( ) ;
210+ const cc = res . headers . get ( "Cache-Control" ) ;
211+ rd . dataCacheTtl = cc ?. includes ( "max-age=" ) ? parseInt ( cc . split ( "max-age=" ) [ 1 ] ) : undefined ;
212+ rd . dataExpires = Date . now ( ) + ( rd . dataCacheTtl || 1 ) * 1000 ;
213+ return data ;
214+ } catch ( _e ) {
215+ return new Error ( "Data must be valid JSON" ) ;
216+ }
217+ } ;
218+ if ( defer ) {
219+ rd . data = fetchData ;
220+ } else {
221+ rd . data = await fetchData ( ) ;
222+ }
223+ dataCache . set ( dataUrl , rd ) ;
224+ }
225+
227226export function listenHistory ( onpopstate : ( e : { type : string ; url ?: URL } ) => Promise < void > ) : ( ) => void {
228227 // deno-lint-ignore no-explicit-any
229228 const navigation = ( window as any ) . navigation ;
0 commit comments