Skip to content

Commit 69ff689

Browse files
authored
Merge pull request #206 from AthennaIO/develop
feat(response): use safeImport
2 parents ba2ac31 + 23d38a0 commit 69ff689

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@athenna/http",
3-
"version": "5.20.0",
3+
"version": "5.21.0",
44
"description": "The Athenna Http server. Built on top of fastify.",
55
"license": "MIT",
66
"author": "João Lenon <[email protected]>",

src/context/Response.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import type { SendOptions } from '@fastify/static'
1515
import type { Request } from '#src/context/Request'
1616
import type { FastifyHelmetOptions } from '@fastify/helmet'
1717

18-
const react = Module.safeImport('react') as any
18+
let reactDom = Module.safeImport('react-dom/server') as any
1919

2020
export class Response {
2121
/**
@@ -169,10 +169,14 @@ export class Response {
169169
beforeComponentRender?: (componentModule: any) => any
170170
}
171171
) {
172-
if (!react) {
173-
throw new Error('React is not installed, please run "npm i react".')
172+
if (!reactDom) {
173+
throw new Error(
174+
'React is not installed, please run "npm i react react-dom".'
175+
)
174176
}
175177

178+
reactDom = await reactDom
179+
176180
options = Options.create(options, {
177181
viewData: {},
178182
component: Config.get('http.vite.ssrEntrypoint'),
@@ -191,7 +195,7 @@ export class Response {
191195
}
192196

193197
return this.view(view, {
194-
element: react.renderToString(component),
198+
element: reactDom.renderToString(component),
195199
...options.viewData
196200
})
197201
}

0 commit comments

Comments
 (0)