react-on-rails
Version:
react-on-rails JavaScript for react_on_rails Ruby gem
31 lines • 1.39 kB
JavaScript
/* eslint-disable import/prefer-default-export -- named export for consistency with capability API */
import handleError from "../handleError.js";
import serverRenderReactComponent from "../serverRenderReactComponent.js";
import { buildLengthPrefixedResult } from "../serverRenderUtils.js";
// Warn about bundle size when included in browser bundles
if (typeof window !== 'undefined') {
console.warn('Optimization opportunity: this bundle includes ~14KB of server-rendering code that browsers may not need. ' +
'See https://forum.shakacode.com/t/how-to-use-different-versions-of-a-file-for-client-and-server-rendering/1352 ' +
'(Requires creating a free account). Click this for the stack trace.');
}
/**
* SSR capability.
* Provides server-side rendering methods (serverRenderReactComponent, handleError).
*/
export function createSSRCapability() {
return {
handleError(options) {
return handleError(options);
},
serverRenderReactComponent(options) {
return serverRenderReactComponent(options);
},
prepareRenderResult(html, consoleReplayScript, hasErrors, renderingError) {
return buildLengthPrefixedResult(html, consoleReplayScript, {
hasErrors,
error: renderingError ?? undefined,
});
},
};
}
//# sourceMappingURL=ssr.js.map