You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.2 KiB
JavaScript

9 months ago
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
isStaticGenBailoutError: null,
staticGenerationBailout: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
isStaticGenBailoutError: function() {
return isStaticGenBailoutError;
},
staticGenerationBailout: function() {
return staticGenerationBailout;
}
});
const _hooksservercontext = require("./hooks-server-context");
const _staticgenerationasyncstorageexternal = require("./static-generation-async-storage.external");
const NEXT_STATIC_GEN_BAILOUT = "NEXT_STATIC_GEN_BAILOUT";
class StaticGenBailoutError extends Error {
constructor(...args){
super(...args);
this.code = NEXT_STATIC_GEN_BAILOUT;
}
}
function isStaticGenBailoutError(error) {
if (typeof error !== "object" || error === null || !("code" in error)) {
return false;
}
return error.code === NEXT_STATIC_GEN_BAILOUT;
}
function formatErrorMessage(reason, opts) {
const { dynamic, link } = opts || {};
const suffix = link ? " See more info here: " + link : "";
return "Page" + (dynamic ? ' with `dynamic = "' + dynamic + '"`' : "") + " couldn't be rendered statically because it used `" + reason + "`." + suffix;
}
const staticGenerationBailout = (reason, param)=>{
let { dynamic, link } = param === void 0 ? {} : param;
const staticGenerationStore = _staticgenerationasyncstorageexternal.staticGenerationAsyncStorage.getStore();
if (!staticGenerationStore) return false;
if (staticGenerationStore.forceStatic) {
return true;
}
if (staticGenerationStore.dynamicShouldError) {
throw new StaticGenBailoutError(formatErrorMessage(reason, {
link,
dynamic: dynamic != null ? dynamic : "error"
}));
}
const message = formatErrorMessage(reason, {
dynamic,
// this error should be caught by Next to bail out of static generation
// in case it's uncaught, this link provides some additional context as to why
link: "https://nextjs.org/docs/messages/dynamic-server-error"
});
// If postpone is available, we should postpone the render.
staticGenerationStore.postpone == null ? void 0 : staticGenerationStore.postpone.call(staticGenerationStore, reason);
// As this is a bailout, we don't want to revalidate, so set the revalidate
// to 0.
staticGenerationStore.revalidate = 0;
if (staticGenerationStore.isStaticGeneration) {
const err = new _hooksservercontext.DynamicServerError(message);
staticGenerationStore.dynamicUsageDescription = reason;
staticGenerationStore.dynamicUsageStack = err.stack;
throw err;
}
return false;
};
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
Object.defineProperty(exports.default, '__esModule', { value: true });
Object.assign(exports.default, exports);
module.exports = exports.default;
}
//# sourceMappingURL=static-generation-bailout.js.map