summaryrefslogtreecommitdiff
path: root/packages/integrations/vue/server.js
blob: 1ae2b757bbe1996c70d184f95d22c417bafddb75 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { h, createSSRApp } from 'vue';
import { renderToString } from 'vue/server-renderer';
import StaticHtml from './static-html.js';

function check(Component) {
	return !!Component['ssrRender'];
}

async function renderToStaticMarkup(Component, props, children) {
	const slots = {};
	if (children != null) {
		slots.default = () => h(StaticHtml, { value: children });
	}
	const app = createSSRApp({ render: () => h(Component, props, slots) });
	const html = await renderToString(app);
	return { html };
}

export default {
	check,
	renderToStaticMarkup,
};