aboutsummaryrefslogtreecommitdiff
path: root/src/lib/generate.ts
diff options
context:
space:
mode:
authormihailo.vojinovic <mihailonvojinovic@gmail.com>2026-02-11 16:56:14 +0100
committermihailo.vojinovic <mihailonvojinovic@gmail.com>2026-02-11 16:56:14 +0100
commitda6d744208ee91c6beabd6e1bd735d17c951e393 (patch)
tree8d9f3c22d66078c5838560c342d3f132af31d9bf /src/lib/generate.ts
parent813454a9ef543f55b7dafb717660c4cbbf8d22b2 (diff)
downloadinvoice-da6d744208ee91c6beabd6e1bd735d17c951e393.tar.gz
invoice-da6d744208ee91c6beabd6e1bd735d17c951e393.zip
Add generate invlice server action
Diffstat (limited to 'src/lib/generate.ts')
-rw-r--r--src/lib/generate.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/generate.ts b/src/lib/generate.ts
new file mode 100644
index 0000000..4787f56
--- /dev/null
+++ b/src/lib/generate.ts
@@ -0,0 +1,21 @@
+"use server";
+
+import { Invoice } from "@/models/invoice";
+import PDFDocument from "pdfkit";
+import blobStream from "blob-stream";
+
+export async function generateInvoice(invoice: Invoice): Promise<Blob> {
+ const doc = new PDFDocument();
+ const stream = doc.pipe(blobStream());
+
+ doc.text("Invoice from " + invoice.from);
+
+ doc.end();
+ return new Promise((resolve, reject) => {
+ stream.on("finish", () => {
+ const blob = stream.toBlob();
+ resolve(blob);
+ });
+ stream.on("error", reject);
+ });
+}