rwsdk
Version:
Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime
27 lines (26 loc) • 757 B
JavaScript
import { renderToStream } from "./renderToStream";
export const renderToString = async (element, options) => {
const stream = await new Promise((resolve, reject) => renderToStream(element, {
...options,
onError: reject,
})
.then(resolve)
.catch(reject));
const reader = stream.getReader();
const decoder = new TextDecoder();
let result = "";
try {
while (true) {
const { done, value } = await reader.read();
if (done)
break;
result += decoder.decode(value, { stream: true });
}
// Flush any remaining bytes
result += decoder.decode();
return result;
}
finally {
reader.releaseLock();
}
};