Skip to content

Commit 32592af

Browse files
committed
Pass the request and reply to custom document templates
1 parent 16b9726 commit 32592af

File tree

3 files changed

+11
-25
lines changed

3 files changed

+11
-25
lines changed

packages/fastify-renderer/src/node/DocumentTemplate.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { FastifyReply, FastifyRequest } from 'fastify'
12
import template from 'stream-template'
23

34
/** Data passed to the template function by the renderer */
@@ -10,6 +11,10 @@ export interface TemplateData<Props> {
1011
content: string | NodeJS.ReadableStream
1112
/** The props object generated by the route handler for this render */
1213
props: Props
14+
/** The fastify request */
15+
request: FastifyRequest
16+
/** The fastify reply */
17+
reply: FastifyReply
1318
}
1419

1520
/** A template renders out a full HTML document given the content for the document and the scripts for the document, and can optionally grab values out of the props to use for other bits like the page title, metatags, or non-client-side-hydrated body content. */

packages/fastify-renderer/src/node/renderers/react/ReactRenderer.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ export class ReactRenderer implements Renderer {
244244
head: bus.stack('head'),
245245
tail: bus.stack('tail'),
246246
props: render.props,
247+
request: render.request,
248+
reply: render.reply,
247249
})
248250
}
249251

@@ -264,6 +266,8 @@ export class ReactRenderer implements Renderer {
264266
head: bus.stack('head'),
265267
tail: bus.stack('tail'),
266268
props: render.props,
269+
request: render.request,
270+
reply: render.reply,
267271
})
268272
}
269273

yarn.lock

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1606,21 +1606,14 @@
16061606
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
16071607
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
16081608

1609-
1609+
"@types/[email protected]", "@types/react-dom@^17.0.11":
16101610
version "17.0.4"
16111611
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.4.tgz#d65159a847aca2a0fc87a7544a2f8fece8754d04"
16121612
integrity sha512-Wb6rlnPJfqbhpkvYN39y1NM/pOGGPzzIRquu0RdUMvTwgXNvASFO7pdtrtvyxGTQNb9wzBaQxXAWDdEqegZw2A==
16131613
dependencies:
16141614
"@types/react" "*"
16151615

1616-
"@types/react-dom@^17.0.11":
1617-
version "17.0.18"
1618-
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.18.tgz#8f7af38f5d9b42f79162eea7492e5a1caff70dc2"
1619-
integrity sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==
1620-
dependencies:
1621-
"@types/react" "^17"
1622-
1623-
"@types/react@*", "@types/[email protected]", "@types/react@^17":
1616+
"@types/react@*", "@types/[email protected]", "@types/react@^17.0.43":
16241617
version "17.0.4"
16251618
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.4.tgz#a67c6f7a460d2660e950d9ccc1c2f18525c28220"
16261619
integrity sha512-onz2BqScSFMoTRdJUZUDD/7xrusM8hBA2Fktk2qgaTYPCgPvWnDEgkrOs8hhPUf2jfcIXkJ5yK6VfYormJS3Jw==
@@ -1629,15 +1622,6 @@
16291622
"@types/scheduler" "*"
16301623
csstype "^3.0.2"
16311624

1632-
"@types/react@^17.0.43":
1633-
version "17.0.52"
1634-
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.52.tgz#10d8b907b5c563ac014a541f289ae8eaa9bf2e9b"
1635-
integrity sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==
1636-
dependencies:
1637-
"@types/prop-types" "*"
1638-
"@types/scheduler" "*"
1639-
csstype "^3.0.2"
1640-
16411625
"@types/sanitize-filename@^1.6.3":
16421626
version "1.6.3"
16431627
resolved "https://registry.yarnpkg.com/@types/sanitize-filename/-/sanitize-filename-1.6.3.tgz#182ebd5658fbd3fe36bcb771daad8b2623371705"
@@ -6580,13 +6564,6 @@ [email protected]:
65806564
loose-envify "^1.1.0"
65816565
object-assign "^4.1.1"
65826566

6583-
scheduler@^0.23.0:
6584-
version "0.23.0"
6585-
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
6586-
integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
6587-
dependencies:
6588-
loose-envify "^1.1.0"
6589-
65906567
secure-json-parse@^2.0.0:
65916568
version "2.4.0"
65926569
resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85"

0 commit comments

Comments
 (0)