From ae2e3b463a91d94caa8bdf62e5c3a3d726b8b4e4 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 23 Jul 2023 18:49:26 +0000
Subject: [PATCH] improve error handling while serving

---
 quartz/processors/parse.ts |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/quartz/processors/parse.ts b/quartz/processors/parse.ts
index a068899..55783dc 100644
--- a/quartz/processors/parse.ts
+++ b/quartz/processors/parse.ts
@@ -107,7 +107,7 @@
         }
       } catch (err) {
         trace(`\nFailed to process \`${fp}\``, err as Error)
-        process.exit(1)
+        throw err
       }
     }
 
@@ -135,9 +135,14 @@
   let res: ProcessedContent[] = []
   log.start(`Parsing input files using ${concurrency} threads`)
   if (concurrency === 1) {
-    const processor = createProcessor(transformers)
-    const parse = createFileParser(transformers, baseDir, fps, allSlugs, verbose)
-    res = await parse(processor)
+    try {
+      const processor = createProcessor(transformers)
+      const parse = createFileParser(transformers, baseDir, fps, allSlugs, verbose)
+      res = await parse(processor)
+    } catch (error) {
+      log.end()
+      throw error
+    }
   } else {
     await transpileWorkerScript()
     const pool = workerpool.pool("./quartz/bootstrap-worker.mjs", {
@@ -156,6 +161,6 @@
     await pool.terminate()
   }
 
-  log.success(`Parsed ${res.length} Markdown files in ${perf.timeSince()}`)
+  log.end(`Parsed ${res.length} Markdown files in ${perf.timeSince()}`)
   return res
 }

--
Gitblit v1.10.0