Files
simple-qr/server/api/index.ts

20 lines
550 B
TypeScript

import { resolve } from "path";
export default defineEventHandler(async (event) => {
const { format, logo, content } = await getValidatedQuery(
event,
settingsSchema.parse,
);
const logoUrl = logo ? resolve("public", `logos/${logo}.png`) : undefined;
const canvas = await renderQRCodeToCanvas(content, logoUrl);
const image = canvas.toBuffer(format);
event.node.res.setHeader("Content-Type", `image/${format}`);
event.node.res.setHeader(
"Content-Disposition",
`filename="qrcode.${format}"`,
);
return image;
});