UNPKG

x-satori

Version:

use Vue or Astro file to generate SVG image using Satori

49 lines (47 loc) 1.16 kB
import { defineSatoriConfig, genSatoriSVG } from "./chunk-JDONRD3H.mjs"; // src/vue.ts import { parse } from "@vue/compiler-sfc"; import { createSSRApp } from "vue"; import { renderToString } from "vue/server-renderer"; async function satoriVue(opts, vueTemplateStr) { const { descriptor } = parse(vueTemplateStr); const renderedHtmlStr = await renderToString( createSSRApp( { props: transformProps(opts.props), template: descriptor.template?.content ?? "" }, opts.props ) ); return await genSatoriSVG(opts, renderedHtmlStr); } function transformProps(props) { const result = {}; if (!props) return result; for (const key in props) { let type; if (typeof props[key] === "boolean") type = Boolean; else if (typeof props[key] === "number") type = Number; else if (typeof props[key] === "string") type = String; else if (typeof props[key] === "symbol") type = Symbol; else type = Object; result[key] = { type }; } return result; } var vue_default = satoriVue; export { vue_default as default, defineSatoriConfig, satoriVue };