import { DynamicServerError } from "./hooks-server-context"; import { staticGenerationAsyncStorage } from "./static-generation-async-storage.external"; class StaticGenBailoutError extends Error { constructor(...args){ super(...args); this.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; } export const staticGenerationBailout = (reason, opts)=>{ const staticGenerationStore = staticGenerationAsyncStorage.getStore(); if (staticGenerationStore == null ? void 0 : staticGenerationStore.forceStatic) { return true; } if (staticGenerationStore == null ? void 0 : staticGenerationStore.dynamicShouldError) { var _opts_dynamic; throw new StaticGenBailoutError(formatErrorMessage(reason, { ...opts, dynamic: (_opts_dynamic = opts == null ? void 0 : opts.dynamic) != null ? _opts_dynamic : "error" })); } if (staticGenerationStore) { staticGenerationStore.revalidate = 0; } if (staticGenerationStore == null ? void 0 : staticGenerationStore.isStaticGeneration) { const err = new DynamicServerError(formatErrorMessage(reason, { ...opts, // 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" })); staticGenerationStore.dynamicUsageDescription = reason; staticGenerationStore.dynamicUsageStack = err.stack; throw err; } return false; }; //# sourceMappingURL=static-generation-bailout.js.map