@@ -6,6 +6,7 @@ const addDefaultLocaleRedirect = require('../../helpers/addDefaultLocaleRedirect
6
6
const asyncForEach = require ( '../../helpers/asyncForEach' )
7
7
const getFilePathForRoute = require ( '../../helpers/getFilePathForRoute' )
8
8
const getNetlifyFunctionName = require ( '../../helpers/getNetlifyFunctionName' )
9
+ const isRouteWithFallback = require ( '../../helpers/isRouteWithFallback' )
9
10
10
11
const getPages = require ( './pages' )
11
12
@@ -35,11 +36,15 @@ const getRedirects = async () => {
35
36
const relativePath = getFilePathForRoute ( srcRoute || route , 'js' )
36
37
const filePath = slash ( join ( 'pages' , relativePath ) )
37
38
const functionName = getNetlifyFunctionName ( filePath )
39
+ const isODB = await isRouteWithFallback ( srcRoute )
38
40
39
41
// Preview mode conditions
40
42
const conditions = [ 'Cookie=__prerender_bypass,__next_preview_data' ]
43
+ // ODB pages' preview mode needs a special flagged standard function because
44
+ // their default function (an ODB) is not functional for preview mode
41
45
const target = `/.netlify/functions/${ functionName } `
42
- const previewModeRedirect = { conditions, force : true , target }
46
+ const previewModeTarget = isODB ? `/.netlify/functions/preview-${ functionName } ` : target
47
+ const previewModeRedirect = { conditions, force : true , target : previewModeTarget }
43
48
44
49
// Add a preview mode redirect for the standard route
45
50
redirects . push ( {
@@ -54,7 +59,7 @@ const getRedirects = async () => {
54
59
} )
55
60
56
61
// Preview mode default locale redirect must precede normal default locale redirect
57
- await addDefaultLocaleRedirect ( redirects , route , target , previewModeRedirect )
62
+ await addDefaultLocaleRedirect ( redirects , route , target , { conditions , force : true } )
58
63
await addDefaultLocaleRedirect ( redirects , route )
59
64
} )
60
65
0 commit comments