From d9159e0ac9bfc22e584c78bc8aa04ecd82c14eea Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Thu, 13 Mar 2025 17:27:46 +0000
Subject: [PATCH] feat: make og images an emitter to properly await image generation (#1826)
---
quartz/build.ts | 45 ++++++++++++++++++++++++++++++++-------------
1 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/quartz/build.ts b/quartz/build.ts
index 81558f9..91a5a5a 100644
--- a/quartz/build.ts
+++ b/quartz/build.ts
@@ -250,15 +250,25 @@
([_node, vfile]) => !toRemove.has(vfile.data.filePath!),
)
- const emittedFps = await emitter.emit(ctx, files, staticResources)
-
- if (ctx.argv.verbose) {
- for (const file of emittedFps) {
- console.log(`[emit:${emitter.name}] ${file}`)
+ const emitted = await emitter.emit(ctx, files, staticResources)
+ if (Symbol.asyncIterator in emitted) {
+ // Async generator case
+ for await (const file of emitted) {
+ emittedFiles++
+ if (ctx.argv.verbose) {
+ console.log(`[emit:${emitter.name}] ${file}`)
+ }
+ }
+ } else {
+ // Array case
+ emittedFiles += emitted.length
+ if (ctx.argv.verbose) {
+ for (const file of emitted) {
+ console.log(`[emit:${emitter.name}] ${file}`)
+ }
}
}
- emittedFiles += emittedFps.length
continue
}
@@ -280,15 +290,24 @@
.filter((file) => !toRemove.has(file))
.map((file) => contentMap.get(file)!)
- const emittedFps = await emitter.emit(ctx, upstreamContent, staticResources)
-
- if (ctx.argv.verbose) {
- for (const file of emittedFps) {
- console.log(`[emit:${emitter.name}] ${file}`)
+ const emitted = await emitter.emit(ctx, upstreamContent, staticResources)
+ if (Symbol.asyncIterator in emitted) {
+ // Async generator case
+ for await (const file of emitted) {
+ emittedFiles++
+ if (ctx.argv.verbose) {
+ console.log(`[emit:${emitter.name}] ${file}`)
+ }
+ }
+ } else {
+ // Array case
+ emittedFiles += emitted.length
+ if (ctx.argv.verbose) {
+ for (const file of emitted) {
+ console.log(`[emit:${emitter.name}] ${file}`)
+ }
}
}
-
- emittedFiles += emittedFps.length
}
}
--
Gitblit v1.10.0