File tree Expand file tree Collapse file tree 12 files changed +365
-165
lines changed
build/src/utils/server-rendering Expand file tree Collapse file tree 12 files changed +365
-165
lines changed Original file line number Diff line number Diff line change @@ -15,8 +15,9 @@ import { BuildOutputAsset } from '../../tools/esbuild/bundler-execution-result';
1515import { urlJoin } from '../url' ;
1616import type { RenderWorkerData } from './render-worker' ;
1717import type {
18+ RoutersExtractorWorkerResult ,
1819 RoutesExtractorWorkerData ,
19- RoutersExtractorWorkerResult as SerializableRouteTreeNode ,
20+ SerializableRouteTreeNode ,
2021} from './routes-extractor-worker' ;
2122
2223interface PrerenderOptions {
@@ -298,14 +299,15 @@ async function getAllRoutes(
298299 } ) ;
299300
300301 const errors : string [ ] = [ ] ;
301- const serializableRouteTreeNode : SerializableRouteTreeNode = await renderWorker
302- . run ( { } )
303- . catch ( ( err ) => {
304- errors . push ( `An error occurred while extracting routes.\n\n${ err . stack } ` ) ;
305- } )
306- . finally ( ( ) => {
307- void renderWorker . destroy ( ) ;
308- } ) ;
302+ const { serializedRouteTree : serializableRouteTreeNode } : RoutersExtractorWorkerResult =
303+ await renderWorker
304+ . run ( { } )
305+ . catch ( ( err ) => {
306+ errors . push ( `An error occurred while extracting routes.\n\n${ err . stack } ` ) ;
307+ } )
308+ . finally ( ( ) => {
309+ void renderWorker . destroy ( ) ;
310+ } ) ;
309311
310312 const skippedRedirects : string [ ] = [ ] ;
311313 const skippedOthers : string [ ] = [ ] ;
Original file line number Diff line number Diff line change @@ -15,22 +15,30 @@ export interface RoutesExtractorWorkerData extends ESMInMemoryFileLoaderWorkerDa
1515 assetFiles : Record < /** Destination */ string , /** Source */ string > ;
1616}
1717
18- export type RoutersExtractorWorkerResult = ReturnType <
19- Awaited < ReturnType < typeof ɵextractRoutesAndCreateRouteTree > > [ 'toObject' ]
18+ export type SerializableRouteTreeNode = ReturnType <
19+ Awaited < ReturnType < typeof ɵextractRoutesAndCreateRouteTree > > [ 'routeTree' ] [ ' toObject']
2020> ;
2121
22+ export interface RoutersExtractorWorkerResult {
23+ serializedRouteTree : SerializableRouteTreeNode ;
24+ errors : string [ ] ;
25+ }
26+
2227/** Renders an application based on a provided options. */
2328async function extractRoutes ( ) : Promise < RoutersExtractorWorkerResult > {
2429 const { ɵextractRoutesAndCreateRouteTree : extractRoutesAndCreateRouteTree } =
2530 await loadEsmModuleFromMemory ( './main.server.mjs' ) ;
2631
27- const routeTree = await extractRoutesAndCreateRouteTree (
32+ const { routeTree, errors } = await extractRoutesAndCreateRouteTree (
2833 new URL ( 'http://local-angular-prerender/' ) ,
2934 /** manifest */ undefined ,
3035 /** invokeGetPrerenderParams */ true ,
3136 ) ;
3237
33- return routeTree . toObject ( ) ;
38+ return {
39+ errors,
40+ serializedRouteTree : routeTree . toObject ( ) ,
41+ } ;
3442}
3543
3644function initialize ( ) {
Original file line number Diff line number Diff line change @@ -59,7 +59,7 @@ export class AngularNodeAppEngine {
5959 * const headers = angularAppEngine.getPrerenderHeaders(res.req);
6060 *
6161 * // Apply the retrieved headers to the response
62- * for (const { key, value } of headers) {
62+ * for (const [ key, value] of headers) {
6363 * res.setHeader(key, value);
6464 * }
6565 * }
You can’t perform that action at this time.
0 commit comments