Skip to content

Commit dc05023

Browse files
Justin SchulzKyleAMathews
authored andcommitted
Add endpoint for refresh (#3293)
This is only active if you actively enable via an environment variable.
1 parent db2fdc1 commit dc05023

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

packages/gatsby/src/commands/develop.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const launchEditor = require(`react-dev-utils/launchEditor`)
1919
const formatWebpackMessages = require(`react-dev-utils/formatWebpackMessages`)
2020
const chalk = require(`chalk`)
2121
const address = require(`address`)
22+
const sourceNodes = require(`../utils/source-nodes`)
2223

2324
// const isInteractive = process.stdout.isTTY
2425

@@ -91,6 +92,24 @@ async function startServer(program) {
9192
graphiql: true,
9293
})
9394
)
95+
96+
/**
97+
* Refresh external data sources.
98+
* This behavior is disabled by default, but the ENABLE_REFRESH_ENDPOINT env var enables it
99+
* If no GATSBY_REFRESH_TOKEN env var is available, then no Authorization header is required
100+
**/
101+
app.post(`/__refresh`, (req, res) => {
102+
const enableRefresh = process.env.ENABLE_GATSBY_REFRESH_ENDPOINT
103+
const refreshToken = process.env.GATSBY_REFRESH_TOKEN
104+
const authorizedRefresh = (!refreshToken || req.headers.authorization === refreshToken)
105+
106+
if (enableRefresh && authorizedRefresh) {
107+
console.log(`Refreshing source data`)
108+
sourceNodes()
109+
}
110+
res.end()
111+
})
112+
94113
app.get(`/__open-stack-frame-in-editor`, (req, res) => {
95114
launchEditor(req.query.fileName, req.query.lineNumber)
96115
res.end()

0 commit comments

Comments
 (0)