wip: preview

This commit is contained in:
2025-09-24 12:36:12 -04:00
parent cd4cf2e3e3
commit 0bffe2768d
5 changed files with 53 additions and 61 deletions

View File

@@ -1,5 +0,0 @@
export default defineEventHandler(async (event) => {
const body = await readBody(event);
console.log(body);
return `<div>TODO: Preview from Nuxt API endpoint</div>`;
});

View File

@@ -0,0 +1,21 @@
import { renderToString } from "vue/server-renderer";
import { createSSRApp, h } from "vue";
export default defineEventHandler(async (event) => {
const { fieldGroupName, ...attrs } = await readBody(event);
const componentName = fieldGroupName.replace(/^GroupAbstractBuilder(.*)Layout$/, "Section$1");
try {
const componentModule = await import(`../../app/components/sections/${componentName}.vue`);
const app = createSSRApp({
render() {
return h(componentModule.default, attrs);
},
});
const html = await renderToString(app);
return html;
}
catch (error) {
const message = error instanceof Error ? error.message : "Une erreur est survenue.";
throw createError({ statusCode: 500, statusMessage: "Erreur interne", message });
}
});