From 9c18e51418b175770acd21553cc829aa8bd40091 Mon Sep 17 00:00:00 2001 From: cexbrayat Date: Fri, 3 Jan 2025 16:25:13 +0000 Subject: [PATCH] chore: version 19.0.0-rc.0 --- ponyracer/angular.json | 2 +- ponyracer/package.json | 6 ++-- ponyracer/src/app/app.component.ts | 1 - ponyracer/src/app/app.config.server.ts | 3 -- ponyracer/src/app/app.routes.server.ts | 8 ----- ponyracer/src/server.ts | 45 +++++++++++--------------- 6 files changed, 23 insertions(+), 42 deletions(-) delete mode 100644 ponyracer/src/app/app.routes.server.ts diff --git a/ponyracer/angular.json b/ponyracer/angular.json index cd9187b..f45a235 100644 --- a/ponyracer/angular.json +++ b/ponyracer/angular.json @@ -31,7 +31,7 @@ ], "scripts": [], "server": "src/main.server.ts", - "outputMode": "server", + "prerender": true, "ssr": { "entry": "src/server.ts" } diff --git a/ponyracer/package.json b/ponyracer/package.json index fc131ca..5dd9941 100644 --- a/ponyracer/package.json +++ b/ponyracer/package.json @@ -20,15 +20,15 @@ "@angular/platform-browser-dynamic": "^19.0.0-next.0", "@angular/platform-server": "^19.0.0-next.0", "@angular/router": "^19.0.0-next.0", - "@angular/ssr": "^19.0.0-next.13", + "@angular/ssr": "^19.0.0-rc.0", "express": "^4.18.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.0.0-next.13", - "@angular/cli": "^19.0.0-next.13", + "@angular-devkit/build-angular": "^19.0.0-rc.0", + "@angular/cli": "^19.0.0-rc.0", "@angular/compiler-cli": "^19.0.0-next.0", "@types/express": "^4.17.17", "@types/jasmine": "~5.1.0", diff --git a/ponyracer/src/app/app.component.ts b/ponyracer/src/app/app.component.ts index 716e5f2..3547759 100644 --- a/ponyracer/src/app/app.component.ts +++ b/ponyracer/src/app/app.component.ts @@ -3,7 +3,6 @@ import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', - standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' diff --git a/ponyracer/src/app/app.config.server.ts b/ponyracer/src/app/app.config.server.ts index 1b7f650..3514d3a 100644 --- a/ponyracer/src/app/app.config.server.ts +++ b/ponyracer/src/app/app.config.server.ts @@ -1,13 +1,10 @@ import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; import { provideServerRendering } from '@angular/platform-server'; -import { provideServerRoutesConfig } from '@angular/ssr'; import { appConfig } from './app.config'; -import { serverRoutes } from './app.routes.server'; const serverConfig: ApplicationConfig = { providers: [ provideServerRendering(), - provideServerRoutesConfig(serverRoutes) ] }; diff --git a/ponyracer/src/app/app.routes.server.ts b/ponyracer/src/app/app.routes.server.ts deleted file mode 100644 index ffd37b1..0000000 --- a/ponyracer/src/app/app.routes.server.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { RenderMode, ServerRoute } from '@angular/ssr'; - -export const serverRoutes: ServerRoute[] = [ - { - path: '**', - renderMode: RenderMode.Prerender - } -]; diff --git a/ponyracer/src/server.ts b/ponyracer/src/server.ts index ab11840..f6a88ad 100644 --- a/ponyracer/src/server.ts +++ b/ponyracer/src/server.ts @@ -1,18 +1,16 @@ -import { - AngularNodeAppEngine, - createNodeRequestHandler, - isMainModule, - writeResponseToNodeResponse, -} from '@angular/ssr/node'; +import { APP_BASE_HREF } from '@angular/common'; +import { CommonEngine, isMainModule } from '@angular/ssr/node'; import express from 'express'; -import { dirname, resolve } from 'node:path'; +import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; +import bootstrap from './main.server'; const serverDistFolder = dirname(fileURLToPath(import.meta.url)); const browserDistFolder = resolve(serverDistFolder, '../browser'); +const indexHtml = join(serverDistFolder, 'index.server.html'); const app = express(); -const angularApp = new AngularNodeAppEngine(); +const commonEngine = new CommonEngine(); /** * Example Express Rest API endpoints can be defined here. @@ -33,13 +31,7 @@ app.get( '**', express.static(browserDistFolder, { maxAge: '1y', - index: 'index.html', - setHeaders: (res) => { - const headers = angularApp.getPrerenderHeaders(res.req); - for (const [key, value] of headers) { - res.setHeader(key, value); - } - }, + index: 'index.html' }), ); @@ -47,12 +39,18 @@ app.get( * Handle all other requests by rendering the Angular application. */ app.get('**', (req, res, next) => { - angularApp - .render(req) - .then((response) => - response ? writeResponseToNodeResponse(response, res) : next(), - ) - .catch(next); + const { protocol, originalUrl, baseUrl, headers } = req; + + commonEngine + .render({ + bootstrap, + documentFilePath: indexHtml, + url: `${protocol}://${headers.host}${originalUrl}`, + publicPath: browserDistFolder, + providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], + }) + .then((html) => res.send(html)) + .catch((err) => next(err)); }); /** @@ -65,8 +63,3 @@ if (isMainModule(import.meta.url)) { console.log(`Node Express server listening on http://localhost:${port}`); }); } - -/** - * The request handler used by the Angular CLI (dev-server and during build). - */ -export const reqHandler = createNodeRequestHandler(app);