feat(bot): add QR PNG renderer

This commit is contained in:
yiekheng 2026-05-09 16:16:09 +08:00
parent 20f24270d9
commit dd1eb711df
2 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,15 @@
import { describe, expect, it } from "vitest";
import { renderQrPng } from "./qr-renderer.js";
describe("renderQrPng", () => {
it("returns a PNG buffer for a non-empty string", async () => {
const png = await renderQrPng("test-qr-payload");
expect(png).toBeInstanceOf(Buffer);
expect(png[0]).toBe(0x89);
expect(png.subarray(1, 4).toString("ascii")).toBe("PNG");
});
it("rejects empty input", async () => {
await expect(renderQrPng("")).rejects.toThrow();
});
});

View File

@ -0,0 +1,6 @@
import QRCode from "qrcode";
export async function renderQrPng(payload: string): Promise<Buffer> {
if (!payload) throw new Error("renderQrPng: payload is empty");
return await QRCode.toBuffer(payload, { type: "png", width: 512, margin: 2 });
}