UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

47 lines (46 loc) 1.75 kB
import ReactDOMServer from "react-dom/server.browser"; var renderToString = async function (app, options) { var _options_deferredPreloads, readableStream = await ReactDOMServer.renderToReadableStream(app, { // Only pass critical scripts to bootstrapModules // These generate both modulepreload links AND async script tags bootstrapModules: options.preloads }); await readableStream.allReady; var out = await streamToString(readableStream); if (!((_options_deferredPreloads = options.deferredPreloads) === null || _options_deferredPreloads === void 0) && _options_deferredPreloads.length) { var modulepreloadLinks = options.deferredPreloads.map(function (src) { return `<link rel="modulepreload" fetchPriority="low" href="${src}"/>`; }).join(""); out = out.replace("</head>", `${modulepreloadLinks}</head>`); } return out; }; async function streamToString(stream) { var decoder = new TextDecoder("utf-8", { fatal: !0 }), result = "", _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0; try { for (var _iterator = stream[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) { var chunk = _step.value; result += decoder.decode(chunk, { stream: !0 }); } } catch (err) { _didIteratorError = !0, _iteratorError = err; } finally { try { !_iteratorNormalCompletion && _iterator.return != null && _iterator.return(); } finally { if (_didIteratorError) throw _iteratorError; } } return result += decoder.decode(), result; } export { renderToString }; //# sourceMappingURL=server-render.native.js.map