securityos/node_modules/next/dist/server/app-render/make-get-server-inserted-ht...

66 lines
3.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "makeGetServerInsertedHTML", {
enumerable: true,
get: function() {
return makeGetServerInsertedHTML;
}
});
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
const _notfound = require("../../client/components/not-found");
const _redirect = require("../../client/components/redirect");
const _getredirectstatuscodefromerror = require("../../client/components/get-redirect-status-code-from-error");
const _rendertostring = require("./render-to-string");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function makeGetServerInsertedHTML({ polyfills, renderServerInsertedHTML }) {
let flushedErrorMetaTagsUntilIndex = 0;
let polyfillsFlushed = false;
return function getServerInsertedHTML(serverCapturedErrors) {
// Loop through all the errors that have been captured but not yet
// flushed.
const errorMetaTags = [];
for(; flushedErrorMetaTagsUntilIndex < serverCapturedErrors.length; flushedErrorMetaTagsUntilIndex++){
const error = serverCapturedErrors[flushedErrorMetaTagsUntilIndex];
if ((0, _notfound.isNotFoundError)(error)) {
errorMetaTags.push(/*#__PURE__*/ _react.default.createElement("meta", {
name: "robots",
content: "noindex",
key: error.digest
}), process.env.NODE_ENV === "development" ? /*#__PURE__*/ _react.default.createElement("meta", {
name: "next-error",
content: "not-found",
key: "next-error"
}) : null);
} else if ((0, _redirect.isRedirectError)(error)) {
const redirectUrl = (0, _redirect.getURLFromRedirectError)(error);
const isPermanent = (0, _getredirectstatuscodefromerror.getRedirectStatusCodeFromError)(error) === 308 ? true : false;
if (redirectUrl) {
errorMetaTags.push(/*#__PURE__*/ _react.default.createElement("meta", {
httpEquiv: "refresh",
content: `${isPermanent ? 0 : 1};url=${redirectUrl}`,
key: error.digest
}));
}
}
}
const flushed = (0, _rendertostring.renderToString)({
ReactDOMServer: require("react-dom/server.edge"),
element: /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, polyfillsFlushed ? null : polyfills == null ? void 0 : polyfills.map((polyfill)=>{
return /*#__PURE__*/ _react.default.createElement("script", {
key: polyfill.src,
...polyfill
});
}), renderServerInsertedHTML(), errorMetaTags)
});
polyfillsFlushed = true;
return flushed;
};
}
//# sourceMappingURL=make-get-server-inserted-html.js.map