kabirgh
2024-01-15 8eec47c340d48d9b45970a88da0aaff4e216a7e2
quartz/build.ts
@@ -2,7 +2,6 @@
sourceMapSupport.install(options)
import path from "path"
import { PerfTimer } from "./util/perf"
import { rimraf } from "rimraf"
import { isGitIgnored } from "globby"
import chalk from "chalk"
import { parseMarkdown } from "./processors/parse"
@@ -13,6 +12,7 @@
import chokidar from "chokidar"
import { ProcessedContent } from "./plugins/vfile"
import { Argv, BuildCtx } from "./util/ctx"
import { rmrf } from "./util/fs"
import { glob, toPosixPath } from "./util/glob"
import { trace } from "./util/trace"
import { options } from "./util/sourcemap"
@@ -40,12 +40,12 @@
  const release = await mut.acquire()
  perf.addEvent("clean")
  await rimraf(output)
  await rmrf(output)
  console.log(`Cleaned output directory \`${output}\` in ${perf.timeSince("clean")}`)
  perf.addEvent("glob")
  const allFiles = await glob("**/*.*", argv.directory, cfg.configuration.ignorePatterns)
  const fps = allFiles.filter((fp) => fp.endsWith(".md"))
  const fps = allFiles.filter((fp) => fp.endsWith(".md")).sort()
  console.log(
    `Found ${fps.length} input files from \`${argv.directory}\` in ${perf.timeSince("glob")}`,
  )
@@ -142,19 +142,23 @@
      const parsedFiles = [...contentMap.values()]
      const filteredContent = filterContent(ctx, parsedFiles)
      // TODO: we can probably traverse the link graph to figure out what's safe to delete here
      // instead of just deleting everything
      await rimraf(argv.output)
      await rmrf(argv.output)
      await emitContent(ctx, filteredContent)
      console.log(chalk.green(`Done rebuilding in ${perf.timeSince()}`))
    } catch {
    } catch (err) {
      console.log(chalk.yellow(`Rebuild failed. Waiting on a change to fix the error...`))
      if (argv.verbose) {
        console.log(chalk.red(err))
      }
    }
    release()
    clientRefresh()
    toRebuild.clear()
    toRemove.clear()
    release()
  }
  const watcher = chokidar.watch(".", {