aboutsummaryrefslogtreecommitdiff
path: root/common/renderSVG.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'common/renderSVG.tsx')
-rw-r--r--common/renderSVG.tsx26
1 files changed, 26 insertions, 0 deletions
diff --git a/common/renderSVG.tsx b/common/renderSVG.tsx
new file mode 100644
index 0000000..d3ec6fe
--- /dev/null
+++ b/common/renderSVG.tsx
@@ -0,0 +1,26 @@
+// @ts-ignore
+import satori, { init as initSatori } from 'satori/wasm'
+// @ts-ignore
+import initYoga from 'yoga-wasm-web'
+// @ts-ignore
+import yogaWasm from '../public/yoga.wasm?module'
+
+import Card from '../src/components/preview/card'
+import { getCardConfig, getFonts, getGraphemeImages } from './renderCard'
+import QueryType from './types/queryType'
+
+const renderCardSVG = async (query: QueryType) => {
+ const yoga = await initYoga(yogaWasm)
+ initSatori(yoga)
+
+ const config = await getCardConfig(query)
+
+ return satori(<Card {...config} />, {
+ width: 1280,
+ height: 640,
+ fonts: await getFonts(config.font),
+ graphemeImages: await getGraphemeImages(config.description?.value)
+ })
+}
+
+export default renderCardSVG