UNPKG

rsbuild-plugin-react-router

Version:
54 lines (53 loc) 3.27 kB
"use strict"; const __rslib_import_meta_url__ = "u" < 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, getters, values)=>{ var define = (defs, kind)=>{ for(var key in defs)__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, { enumerable: !0, [kind]: defs[key] }); }; define(getters, "get"), define(values, "value"); }, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports1)=>{ "u" > 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 }); const 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 abortDelay, shellRendered = !1, statusCode = responseStatusCode, userAgent = request.headers.get('user-agent'), readyOption = userAgent && (0, external_isbot_namespaceObject.isbot)(userAgent) || routerContext.isSpaMode ? 'onAllReady' : 'onShellReady', ready = !1, { pipe, abort } = (0, server_namespaceObject.renderToPipeableStream)(external_react_namespaceObject.createElement(external_react_router_namespaceObject.ServerRouter, { context: routerContext, url: request.url }), { [readyOption] () { ready = !0, 'onAllReady' === readyOption && abortDelay && clearTimeout(abortDelay), 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); } }); abortDelay = setTimeout(abort, 5000), 'onAllReady' === readyOption && ready && clearTimeout(abortDelay); }); } for(var __rspack_i in exports.default = __webpack_exports__.default, __webpack_exports__)-1 === [ "default" ].indexOf(__rspack_i) && (exports[__rspack_i] = __webpack_exports__[__rspack_i]); Object.defineProperty(exports, '__esModule', { value: !0 });