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.
		
		
		
		
		
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			73 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
| "use strict";
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|     value: true
 | |
| });
 | |
| Object.defineProperty(exports, "makeGetServerInsertedHTML", {
 | |
|     enumerable: true,
 | |
|     get: function() {
 | |
|         return makeGetServerInsertedHTML;
 | |
|     }
 | |
| });
 | |
| const _jsxruntime = require("react/jsx-runtime");
 | |
| const _react = /*#__PURE__*/ _interop_require_default(require("react"));
 | |
| const _notfound = require("../../client/components/not-found");
 | |
| const _redirect = require("../../client/components/redirect");
 | |
| const _serveredge = require("react-dom/server.edge");
 | |
| const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper");
 | |
| const _redirectstatuscode = require("../../client/components/redirect-status-code");
 | |
| function _interop_require_default(obj) {
 | |
|     return obj && obj.__esModule ? obj : {
 | |
|         default: obj
 | |
|     };
 | |
| }
 | |
| function makeGetServerInsertedHTML({ polyfills, renderServerInsertedHTML, hasPostponed }) {
 | |
|     let flushedErrorMetaTagsUntilIndex = 0;
 | |
|     // If the render had postponed, then we have already flushed the polyfills.
 | |
|     let polyfillsFlushed = hasPostponed;
 | |
|     return async function getServerInsertedHTML(serverCapturedErrors) {
 | |
|         // Loop through all the errors that have been captured but not yet
 | |
|         // flushed.
 | |
|         const errorMetaTags = [];
 | |
|         while(flushedErrorMetaTagsUntilIndex < serverCapturedErrors.length){
 | |
|             const error = serverCapturedErrors[flushedErrorMetaTagsUntilIndex];
 | |
|             flushedErrorMetaTagsUntilIndex++;
 | |
|             if ((0, _notfound.isNotFoundError)(error)) {
 | |
|                 errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
 | |
|                     name: "robots",
 | |
|                     content: "noindex"
 | |
|                 }, error.digest), process.env.NODE_ENV === "development" ? /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
 | |
|                     name: "next-error",
 | |
|                     content: "not-found"
 | |
|                 }, "next-error") : null);
 | |
|             } else if ((0, _redirect.isRedirectError)(error)) {
 | |
|                 const redirectUrl = (0, _redirect.getURLFromRedirectError)(error);
 | |
|                 const statusCode = (0, _redirect.getRedirectStatusCodeFromError)(error);
 | |
|                 const isPermanent = statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect ? true : false;
 | |
|                 if (redirectUrl) {
 | |
|                     errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", {
 | |
|                         httpEquiv: "refresh",
 | |
|                         content: `${isPermanent ? 0 : 1};url=${redirectUrl}`
 | |
|                     }, error.digest));
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         const stream = await (0, _serveredge.renderToReadableStream)(/*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
 | |
|             children: [
 | |
|                 !polyfillsFlushed && (polyfills == null ? void 0 : polyfills.map((polyfill)=>{
 | |
|                     return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", {
 | |
|                         ...polyfill
 | |
|                     }, polyfill.src);
 | |
|                 })),
 | |
|                 renderServerInsertedHTML(),
 | |
|                 errorMetaTags
 | |
|             ]
 | |
|         }));
 | |
|         // Mark polyfills as flushed so they don't get flushed again.
 | |
|         if (!polyfillsFlushed) polyfillsFlushed = true;
 | |
|         // Wait for the stream to be ready.
 | |
|         await stream.allReady;
 | |
|         return (0, _nodewebstreamshelper.streamToString)(stream);
 | |
|     };
 | |
| }
 | |
| 
 | |
| //# sourceMappingURL=make-get-server-inserted-html.js.map
 |