Skip to content

Commit fd48686

Browse files
committed
chore: add jest ts support
1 parent a5635c6 commit fd48686

File tree

5 files changed

+67
-8
lines changed

5 files changed

+67
-8
lines changed

babel.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// This is just for jest
22
module.exports = {
3-
presets: [['@babel/preset-env', { targets: { node: 'current' } }]],
3+
presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'],
44
}

demo/pages/getStaticProps/withRevalidate/[id].js

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const Show = ({ show, time }) => (
88

99
<h1>Show #{show.id}</h1>
1010
<p>{show.name}</p>
11-
<p>Rendered at {time}</p>
11+
<p>Rendered at {time} (slowly)</p>
1212
<hr />
1313

1414
<Link href="/">
@@ -33,7 +33,7 @@ export async function getStaticProps({ params }) {
3333
const res = await fetch(`https://api.tvmaze.com/shows/${id}`)
3434
const data = await res.json()
3535
const time = new Date().toLocaleTimeString()
36-
await new Promise((resolve) => setTimeout(resolve, 1000))
36+
await new Promise((resolve) => setTimeout(resolve, 3000))
3737
return {
3838
props: {
3939
show: data,

package-lock.json

+57
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"devDependencies": {
7373
"@babel/core": "^7.15.8",
7474
"@babel/preset-env": "^7.15.8",
75+
"@babel/preset-typescript": "^7.16.0",
7576
"@netlify/build": "^18.25.2",
7677
"@netlify/eslint-config-node": "^3.3.7",
7778
"@testing-library/cypress": "^8.0.1",

src/templates/getHandler.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ const makeHandler =
110110
bridge.listen()
111111

112112
return async (event, context) => {
113+
let requestMode = mode
113114
// Ensure that paths are encoded - but don't double-encode them
114115
event.path = new URL(event.path, event.rawUrl).pathname
115116
// Next expects to be able to parse the query from the URL
@@ -122,6 +123,7 @@ const makeHandler =
122123
base = `${protocol}://${host}`
123124
}
124125
const { headers, ...result } = await bridge.launcher(event, context)
126+
125127
/** @type import("@netlify/functions").HandlerResponse */
126128

127129
// Convert all headers to multiValueHeaders
@@ -135,21 +137,20 @@ const makeHandler =
135137

136138
// Sending SWR headers causes undefined behaviour with the Netlify CDN
137139
const cacheHeader = multiValueHeaders['cache-control']?.[0]
138-
multiValueHeaders['x-next-cache-header'] = [cacheHeader || '']
139140

140141
if (cacheHeader?.includes('stale-while-revalidate')) {
141-
if (mode === 'odb' && process.env.EXPERIMENTAL_ODB_TTL) {
142-
mode = 'isr'
142+
if (requestMode === 'odb' && process.env.EXPERIMENTAL_ODB_TTL) {
143+
requestMode = 'isr'
143144
const ttl = getMaxAge(cacheHeader)
144145
// Long-expiry TTL is basically no TTL
145146
if (ttl > 0 && ttl < ONE_YEAR_IN_SECONDS) {
146147
result.ttl = ttl
147148
}
149+
multiValueHeaders['x-rendered-at'] = [new Date().toISOString()]
148150
}
149151
multiValueHeaders['cache-control'] = ['public, max-age=0, must-revalidate']
150152
}
151-
multiValueHeaders['x-render-mode'] = [mode]
152-
153+
multiValueHeaders['x-render-mode'] = [requestMode]
153154
return {
154155
...result,
155156
multiValueHeaders,

0 commit comments

Comments
 (0)