blob: 3bc26673527fe73296bf75ff534f18446e84cdd7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import { h, render } from 'preact';
import { renderToString } from 'preact-render-to-string';
import type { ComponentRenderer } from '../../@types/renderer';
import { createRenderer } from './renderer';
// This prevents tree-shaking of render.
Function.prototype(render);
const Preact: ComponentRenderer = {
renderStatic(Component) {
return async (props, ...children) => renderToString(h(Component, props, ...children));
},
imports: {
preact: ['render', 'h'],
},
render({ Component, root, props }) {
return `render(h(${Component}, ${props}), ${root})`;
},
};
const renderer = createRenderer(Preact);
export const __preact_static = renderer.static;
export const __preact_load = renderer.load;
export const __preact_idle = renderer.idle;
export const __preact_visible = renderer.visible;
|