import { defineHandler } from 'nitro/h3'; import { renderToString } from 'react-dom/server'; import React from 'react'; import Icon from 'lucide-react/src/Icon'; import type { IconNode } from 'lucide-react/src/types'; import { parseSync } from 'svgson'; export default defineHandler((event) => { const { params } = event.context; const [strokeWidth, svgData] = params.data.split('/'); const data = svgData.slice(0, -4); const src = Buffer.from(data, 'base64').toString('utf8'); const iconNode = parseSync(src.includes('${src}`).children.map( ({ name, attributes }) => [name, attributes], ) as IconNode; event.res.headers.set('Content-Type', 'image/svg+xml'); event.res.headers.set('Cache-Control', 'public,max-age=31536000'); return renderToString( , ); });