@@ -91,26 +91,28 @@ export function getCloudflareContext<
91
91
// source: https://github.com/vercel/next.js/blob/4e394608423/packages/next/src/export/worker.ts#L55-L57)
92
92
const inSSG = global . __NEXT_DATA__ ?. nextExport === true ;
93
93
94
- if ( ( inNodejsRuntime || inSSG ) && asyncMode ) {
95
- // we're in a node.js process and also in "async mode" so we can use wrangler to asynchronously get the context
96
- return getCloudflareContextFromWrangler < CfProperties , Context > ( ) . then ( ( context ) => {
97
- addCloudflareContextToNodejsGlobal ( context ) ;
98
- return context ;
99
- } ) ;
100
- }
101
-
102
- // The sync mode of `getCloudflareContext`, relies on the context being set on the global state
103
- // by either the worker entrypoint (in prod) or by `initOpenNextCloudflareForDev` (in dev), neither
104
- // can work during SSG since for SSG Next.js creates (jest) workers that don't get access to the
105
- // normal global state so we throw with a helpful error message.
106
- if ( inSSG ) {
107
- throw new Error (
108
- `\n\nERROR: \`getCloudflareContext\` has been called in a static route,` +
109
- ` that is not allowed, this can be solved in different ways:\n\n` +
110
- ` - call \`getCloudflareContext({async: true})\` to use the \`async\` mode\n` +
111
- ` - avoid calling \`getCloudflareContext\` in the route\n` +
112
- ` - make the route non static\n`
113
- ) ;
94
+ if ( asyncMode ) {
95
+ if ( inNodejsRuntime || inSSG ) {
96
+ // we're in a node.js process and also in "async mode" so we can use wrangler to asynchronously get the context
97
+ return getCloudflareContextFromWrangler < CfProperties , Context > ( ) . then ( ( context ) => {
98
+ addCloudflareContextToNodejsGlobal ( context ) ;
99
+ return context ;
100
+ } ) ;
101
+ }
102
+ } else {
103
+ // The sync mode of `getCloudflareContext`, relies on the context being set on the global state
104
+ // by either the worker entrypoint (in prod) or by `initOpenNextCloudflareForDev` (in dev), neither
105
+ // can work during SSG since for SSG Next.js creates (jest) workers that don't get access to the
106
+ // normal global state so we throw with a helpful error message.
107
+ if ( inSSG ) {
108
+ throw new Error (
109
+ `\n\nERROR: \`getCloudflareContext\` has been called in a static route,` +
110
+ ` that is not allowed, this can be solved in different ways:\n\n` +
111
+ ` - call \`getCloudflareContext({async: true})\` to use the \`async\` mode\n` +
112
+ ` - avoid calling \`getCloudflareContext\` in the route\n` +
113
+ ` - make the route non static\n`
114
+ ) ;
115
+ }
114
116
}
115
117
116
118
// The cloudflare context is initialized by the worker so it is always available.
0 commit comments