@@ -95,10 +95,14 @@ export default defineNuxtConfig({
9595 } ,
9696 } ,
9797 // pages
98- '/package/:name' : { isr : getISRConfig ( 60 , true ) } ,
99- '/package/:name/v/:version' : { isr : getISRConfig ( 60 , true ) } ,
100- '/package/:org/:name' : { isr : getISRConfig ( 60 , true ) } ,
101- '/package/:org/:name/v/:version' : { isr : getISRConfig ( 60 , true ) } ,
98+ '/package/:name' : { isr : getISRConfig ( 60 , { fallback : 'html' } ) } ,
99+ '/package/:name/_payload.json' : { isr : getISRConfig ( 60 , { fallback : 'json' } ) } ,
100+ '/package/:name/v/:version' : { isr : getISRConfig ( 60 , { fallback : 'html' } ) } ,
101+ '/package/:name/v/:version/_payload.json' : { isr : getISRConfig ( 60 , { fallback : 'json' } ) } ,
102+ '/package/:org/:name' : { isr : getISRConfig ( 60 , { fallback : 'html' } ) } ,
103+ '/package/:org/:name/_payload.json' : { isr : getISRConfig ( 60 , { fallback : 'json' } ) } ,
104+ '/package/:org/:name/v/:version' : { isr : getISRConfig ( 60 , { fallback : 'html' } ) } ,
105+ '/package/:org/:name/v/:version/_payload.json' : { isr : getISRConfig ( 60 , { fallback : 'json' } ) } ,
102106 // infinite cache (versioned - doesn't change)
103107 '/package-code/**' : { isr : true , cache : { maxAge : 365 * 24 * 60 * 60 } } ,
104108 '/package-docs/**' : { isr : true , cache : { maxAge : 365 * 24 * 60 * 60 } } ,
@@ -281,11 +285,15 @@ export default defineNuxtConfig({
281285 } ,
282286} )
283287
284- function getISRConfig ( expirationSeconds : number , fallback = false ) {
285- if ( fallback ) {
288+ interface ISRConfigOptions {
289+ fallback ?: 'html' | 'json'
290+ }
291+ function getISRConfig ( expirationSeconds : number , options : ISRConfigOptions = { } ) {
292+ if ( options . fallback ) {
286293 return {
287294 expiration : expirationSeconds ,
288- fallback : 'spa.prerender-fallback.html' ,
295+ fallback :
296+ options . fallback === 'html' ? 'spa.prerender-fallback.html' : 'payload-fallback.json' ,
289297 } as { expiration : number }
290298 }
291299 return {
0 commit comments