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
		
	
| 
											9 months ago
										 | "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
 |