summaryrefslogtreecommitdiff
path: root/src/frontend/render/svelte.ts
blob: 2f67eb79f3dab8e699e19ef8ba3fb5eff4fbc571 (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
import { Renderer, createRenderer } from './renderer';

const SvelteRenderer: Renderer = {
  renderStatic(Component) {
    return async (props, ...children) => {
      const { html } = Component.render(props);
      return html;
    };
  },
  render({ Component, root, props }) {
    return `new ${Component}({
      target: ${root},
      props: ${props}
    })`;
  },
};

const renderer = createRenderer(SvelteRenderer);

export const __svelte_static = renderer.static;
export const __svelte_load = renderer.load;
export const __svelte_idle = renderer.idle;
export const __svelte_visible = renderer.visible;