UNPKG

next

Version:

The React Framework

80 lines (79 loc) 2.93 kB
/** * Describes the different fallback modes that a given page can have. */ export var FallbackMode = /*#__PURE__*/ function(FallbackMode) { /** * A BLOCKING_STATIC_RENDER fallback will block the request until the page is * generated. No fallback page will be rendered, and users will have to wait * to render the page. */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; /** * When set to PRERENDER, a fallback page will be sent to users in place of * forcing them to wait for the page to be generated. This allows the user to * see a rendered page earlier. */ FallbackMode["PRERENDER"] = "PRERENDER"; /** * When set to NOT_FOUND, pages that are not already prerendered will result * in a not found response. */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; return FallbackMode; }({}); /** * Parses the fallback field from the prerender manifest. * * @param fallbackField The fallback field from the prerender manifest. * @returns The fallback mode. */ export function parseFallbackField(fallbackField) { if (typeof fallbackField === 'string') { return "PRERENDER"; } else if (fallbackField === null) { return "BLOCKING_STATIC_RENDER"; } else if (fallbackField === false) { return "NOT_FOUND"; } else if (fallbackField === undefined) { return undefined; } else { throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { value: "E285", enumerable: false, configurable: true }); } } export function fallbackModeToFallbackField(fallback, page) { switch(fallback){ case "BLOCKING_STATIC_RENDER": return null; case "NOT_FOUND": return false; case "PRERENDER": if (!page) { throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { value: "E422", enumerable: false, configurable: true }); } return page; default: throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { value: "E254", enumerable: false, configurable: true }); } } /** * Parses the fallback from the static paths result. * * @param result The result from the static paths function. * @returns The fallback mode. */ export function parseStaticPathsResult(result) { if (result === true) { return "PRERENDER"; } else if (result === 'blocking') { return "BLOCKING_STATIC_RENDER"; } else { return "NOT_FOUND"; } } //# sourceMappingURL=fallback.js.map