Skip to content

Commit 4cdf8a5

Browse files
committed
refactor: simplify user code
1 parent df8d0df commit 4cdf8a5

File tree

8 files changed

+304
-12
lines changed

8 files changed

+304
-12
lines changed

demo/server.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
import { CommonEngine } from '@angular/ssr/node'
2+
import { render } from '@netlify/angular-runtime/common-engine'
23

34
const commonEngine = new CommonEngine()
45

5-
export default async function HttpHandler(
6-
request: Request,
7-
context: any,
8-
commonEngineRenderArgs: any,
9-
): Promise<Response> {
10-
// customize if you want to
6+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
7+
export default async function HttpHandler(request: Request, context: any): Promise<Response> {
8+
// customize if you want to have custom request handling
119

12-
return new Response(await commonEngine.render(commonEngineRenderArgs), {
13-
headers: { 'content-type': 'text/html' },
14-
})
10+
return await render(commonEngine)
1511
}

demo/src/app/app.routes.server.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { RenderMode, ServerRoute } from '@angular/ssr'
22

33
export const serverRoutes: ServerRoute[] = [
4+
// dashboard component demonstrates "netlify.request" and "netlify.context" injection injection
5+
// which only really work for SSR, so we are forcing SSR mode here
6+
{ path: 'dashboard', renderMode: RenderMode.Server },
47
{ path: 'detail/:id', renderMode: RenderMode.Server },
58
{
69
path: '**',

demo/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"sourceMap": true,
1414
"declaration": false,
1515
"experimentalDecorators": true,
16-
"moduleResolution": "node",
16+
"moduleResolution": "bundler",
1717
"importHelpers": true,
1818
"target": "ES2022",
1919
"module": "ES2022",

package-lock.json

Lines changed: 247 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,22 @@
55
"main": "src/index.js",
66
"files": [
77
"src/**/*.js",
8+
"src/**/*.mjs",
89
"src/**/*.json",
910
"manifest.yml"
1011
],
12+
"exports": {
13+
"./package.json": {
14+
"default": "./package.json"
15+
},
16+
".": {
17+
"default": "./src/index.js"
18+
},
19+
"./common-engine": {
20+
"types": "./src/common-engine.d.ts",
21+
"default": "./src/common-engine.mjs"
22+
}
23+
},
1124
"scripts": {
1225
"format": "run-s format:check-fix:*",
1326
"format:ci": "run-s format:check:*",
@@ -60,6 +73,7 @@
6073
"node": ">=18.13.0"
6174
},
6275
"devDependencies": {
76+
"@angular/ssr": "^19.0.0-rc.1",
6377
"@opentelemetry/api": "~1.8.0",
6478
"@netlify/eslint-config-node": "^7.0.1",
6579
"@types/node": "^16.3.1",
@@ -74,6 +88,14 @@
7488
"fs-extra": "^11.1.1",
7589
"semver": "^7.5.4"
7690
},
91+
"peerDependencies": {
92+
"@angular/ssr": "^19.0.0-rc.1"
93+
},
94+
"peerDependenciesMeta": {
95+
"@angular/ssr": {
96+
"optional": true
97+
}
98+
},
7799
"jest": {
78100
"testMatch": [
79101
"**/test/**/*.js"

src/common-engine.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { CommonEngine } from '@angular/ssr/node'
2+
3+
export declare function render(commonEngine: CommonEngine): Promise<Response>

src/common-engine.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export const render = async (commonEngine) => {
2+
const commonEngineRenderArgs = globalThis.CommonEngineArgsFactory.get()
3+
return new Response(await commonEngine.render(commonEngineRenderArgs), {
4+
headers: { 'content-type': 'text/html' },
5+
})
6+
}

0 commit comments

Comments
 (0)