@@ -15,7 +15,7 @@ import { consoleLogDestination } from '../logger/console.js';
1515import { error , type LogOptions } from '../logger/core.js' ;
1616import { callMiddleware } from '../middleware/callMiddleware.js' ;
1717import { prependForwardSlash , removeTrailingForwardSlash } from '../path.js' ;
18- import { RedirectComponentInstance } from '../redirects/index.js' ;
18+ import { RedirectSinglePageBuiltModule } from '../redirects/index.js' ;
1919import {
2020 createEnvironment ,
2121 createRenderContext ,
@@ -29,6 +29,7 @@ import {
2929 createStylesheetElementSet ,
3030} from '../render/ssr-element.js' ;
3131import { matchRoute } from '../routing/match.js' ;
32+ import type { SinglePageBuiltModule } from '../build/types' ;
3233export { deserializeManifest } from './common.js' ;
3334
3435const clientLocalsSymbol = Symbol . for ( 'astro.locals' ) ;
@@ -171,9 +172,9 @@ export class App {
171172 return getSetCookiesFromResponse ( response ) ;
172173 }
173174
174- async #getModuleForRoute( route : RouteData ) : Promise < ComponentInstance > {
175+ async #getModuleForRoute( route : RouteData ) : Promise < SinglePageBuiltModule > {
175176 if ( route . type === 'redirect' ) {
176- return RedirectComponentInstance ;
177+ return RedirectSinglePageBuiltModule ;
177178 } else {
178179 const importComponentInstance = this . #manifest. pageMap . get ( route . component ) ;
179180 if ( ! importComponentInstance ) {
@@ -182,14 +183,14 @@ export class App {
182183 ) ;
183184 }
184185 const built = await importComponentInstance ( ) ;
185- return built . page ( ) ;
186+ return built ;
186187 }
187188 }
188189
189190 async #renderPage(
190191 request : Request ,
191192 routeData : RouteData ,
192- mod : ComponentInstance ,
193+ page : SinglePageBuiltModule ,
193194 status = 200
194195 ) : Promise < Response > {
195196 const url = new URL ( request . url ) ;
@@ -214,6 +215,7 @@ export class App {
214215 }
215216
216217 try {
218+ const mod = ( await page . page ( ) ) as any ;
217219 const renderContext = await createRenderContext ( {
218220 request,
219221 origin : url . origin ,
@@ -224,7 +226,7 @@ export class App {
224226 links,
225227 route : routeData ,
226228 status,
227- mod : mod as any ,
229+ mod,
228230 env : this . #env,
229231 } ) ;
230232
@@ -235,7 +237,7 @@ export class App {
235237 site : this . #env. site ,
236238 adapterName : this . #env. adapterName ,
237239 } ) ;
238- const onRequest = this . #manifest . middleware ?. onRequest ;
240+ const onRequest = page . middleware ?. onRequest ;
239241 let response ;
240242 if ( onRequest ) {
241243 response = await callMiddleware < Response > (
@@ -268,11 +270,12 @@ export class App {
268270 async #callEndpoint(
269271 request : Request ,
270272 routeData : RouteData ,
271- mod : ComponentInstance ,
273+ page : SinglePageBuiltModule ,
272274 status = 200
273275 ) : Promise < Response > {
274276 const url = new URL ( request . url ) ;
275277 const pathname = '/' + this . removeBase ( url . pathname ) ;
278+ const mod = await page . page ( ) ;
276279 const handler = mod as unknown as EndpointHandler ;
277280
278281 const ctx = await createRenderContext ( {
@@ -285,13 +288,7 @@ export class App {
285288 mod : handler as any ,
286289 } ) ;
287290
288- const result = await callEndpoint (
289- handler ,
290- this . #env,
291- ctx ,
292- this . #logging,
293- this . #manifest. middleware
294- ) ;
291+ const result = await callEndpoint ( handler , this . #env, ctx , this . #logging, page . middleware ) ;
295292
296293 if ( result . type === 'response' ) {
297294 if ( result . response . headers . get ( 'X-Astro-Response' ) === 'Not-Found' ) {
0 commit comments