ssr method
void
ssr(
- String path,
- BloomNode builder(
- BloomRequest request
- HeadManager head(
- BloomRequest request
- String layout(
- String bodyHtml,
- HeadManager? head
- List<
BloomMiddleware> middlewares = const [],
Mounts a Server-Side Rendered (SSR) endpoint within this group.
Implementation
void ssr(
String path,
BloomNode Function(BloomRequest request) builder, {
HeadManager Function(BloomRequest request)? head,
String Function(String bodyHtml, HeadManager? head)? layout,
List<BloomMiddleware> middlewares = const [],
}) {
get(path, (request) async {
final node = builder(request);
final bodyHtml = renderToHtml(node);
final headManager = head?.call(request);
final String fullHtml;
if (layout != null) {
fullHtml = layout(bodyHtml, headManager);
} else if (headManager != null) {
fullHtml = headManager.wrapDocument(bodyHtml);
} else {
fullHtml =
'<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"></head><body>$bodyHtml</body></html>';
}
return BloomResponse.html(fullHtml);
}, middlewares: middlewares);
}