diff options
Diffstat (limited to 'common/renderSVG.tsx')
| -rw-r--r-- | common/renderSVG.tsx | 26 |
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 |
