bpms_site/.svn/pristine/76/76878c283b2b7fc28182996401b01dd14b803470.svn-base
2025-11-02 16:38:49 +03:30

116 lines
4.6 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
generatePrefetchRsc: null,
exportAppPage: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
generatePrefetchRsc: function() {
return generatePrefetchRsc;
},
exportAppPage: function() {
return exportAppPage;
}
});
const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises"));
const _approuterheaders = require("../../client/components/app-router-headers");
const _isdynamicusageerror = require("../helpers/is-dynamic-usage-error");
const _constants = require("../../lib/constants");
const _ciinfo = require("../../telemetry/ci-info");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* Lazily loads and runs the app page render function.
*/ const render = (...args)=>{
return require("../../server/future/route-modules/app-page/module.compiled").renderToHTMLOrFlight(...args);
};
async function generatePrefetchRsc(req, path, res, pathname, query, htmlFilepath, renderOpts) {
req.headers[_approuterheaders.RSC.toLowerCase()] = "1";
req.headers[_approuterheaders.NEXT_URL.toLowerCase()] = path;
req.headers[_approuterheaders.NEXT_ROUTER_PREFETCH.toLowerCase()] = "1";
renderOpts.supportsDynamicHTML = true;
delete renderOpts.isRevalidate;
const prefetchRenderResult = await render(req, res, pathname, query, renderOpts);
prefetchRenderResult.pipe(res);
await res.hasStreamed;
const prefetchRscData = Buffer.concat(res.buffers);
await _promises.default.writeFile(htmlFilepath.replace(/\.html$/, ".prefetch.rsc"), prefetchRscData);
}
async function exportAppPage(req, res, page, path, pathname, query, renderOpts, htmlFilepath, debugOutput, isDynamicError, isAppPrefetch) {
// If the page is `/_not-found`, then we should update the page to be `/404`.
if (page === "/_not-found") {
pathname = "/404";
}
try {
if (isAppPrefetch) {
await generatePrefetchRsc(req, path, res, pathname, query, htmlFilepath, renderOpts);
return {
fromBuildExportRevalidate: 0
};
}
const result = await render(req, res, pathname, query, renderOpts);
const html = result.toUnchunkedString();
const { metadata } = result;
const flightData = metadata.pageData;
const revalidate = metadata.revalidate;
if (revalidate === 0) {
if (isDynamicError) {
throw new Error(`Page with dynamic = "error" encountered dynamic data method on ${path}.`);
}
await generatePrefetchRsc(req, path, res, pathname, query, htmlFilepath, renderOpts);
const { staticBailoutInfo = {} } = metadata;
if (revalidate === 0 && debugOutput && (staticBailoutInfo == null ? void 0 : staticBailoutInfo.description)) {
const err = new Error(`Static generation failed due to dynamic usage on ${path}, reason: ${staticBailoutInfo.description}`);
// Update the stack if it was provided via the bailout info.
const { stack } = staticBailoutInfo;
if (stack) {
err.stack = err.message + stack.substring(stack.indexOf("\n"));
}
console.warn(err);
}
return {
fromBuildExportRevalidate: 0
};
}
let headers;
if (metadata.fetchTags) {
headers = {
[_constants.NEXT_CACHE_TAGS_HEADER]: metadata.fetchTags
};
}
// Writing static HTML to a file.
await _promises.default.writeFile(htmlFilepath, html ?? "", "utf8");
// Writing the request metadata to a file.
const meta = {
headers
};
await _promises.default.writeFile(htmlFilepath.replace(/\.html$/, ".meta"), JSON.stringify(meta));
// Writing the RSC payload to a file.
await _promises.default.writeFile(htmlFilepath.replace(/\.html$/, ".rsc"), flightData);
return {
fromBuildExportRevalidate: revalidate,
// Only include the metadata if the environment has next support.
fromBuildExportMeta: _ciinfo.hasNextSupport ? meta : undefined
};
} catch (err) {
if (!(0, _isdynamicusageerror.isDynamicUsageError)(err)) {
throw err;
}
return {
fromBuildExportRevalidate: 0
};
}
}
//# sourceMappingURL=app-page.js.map