UNPKG

rsbuild-plugin-react-router

Version:
50 lines (49 loc) 3.02 kB
"use strict"; let __rslib_import_meta_url__ = 'undefined' == typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href; var __webpack_require__ = {}; __webpack_require__.d = (exports1, definition)=>{ for(var key in definition)__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, { enumerable: !0, get: definition[key] }); }, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports1)=>{ 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports1, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(exports1, '__esModule', { value: !0 }); }; var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, { default: ()=>handleRequest }); let external_node_stream_namespaceObject = require("node:stream"), node_namespaceObject = require("@react-router/node"), external_isbot_namespaceObject = require("isbot"), external_react_namespaceObject = require("react"), server_namespaceObject = require("react-dom/server"), external_react_router_namespaceObject = require("react-router"), ABORT_DELAY = 5000; function handleRequest(request, responseStatusCode, responseHeaders, routerContext) { return new Promise((resolve, reject)=>{ let shellRendered = !1, statusCode = responseStatusCode, userAgent = request.headers.get('user-agent'), readyOption = userAgent && (0, external_isbot_namespaceObject.isbot)(userAgent) || routerContext.isSpaMode ? 'onAllReady' : 'onShellReady', { pipe, abort } = (0, server_namespaceObject.renderToPipeableStream)(external_react_namespaceObject.createElement(external_react_router_namespaceObject.ServerRouter, { context: routerContext, url: request.url }), { [readyOption] () { shellRendered = !0; let body = new external_node_stream_namespaceObject.PassThrough(), stream = (0, node_namespaceObject.createReadableStreamFromReadable)(body); responseHeaders.set('Content-Type', 'text/html'), resolve(new Response(stream, { headers: responseHeaders, status: statusCode })), pipe(body); }, onShellError (error) { reject(error); }, onError (error) { statusCode = 500, shellRendered && console.error(error); } }); setTimeout(abort, 5000); }); } var __webpack_export_target__ = exports; for(var __webpack_i__ in __webpack_exports__)__webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__]; __webpack_exports__.__esModule && Object.defineProperty(__webpack_export_target__, '__esModule', { value: !0 });