Jacky Zhao
2023-08-23 a1a1e7e1e0c06f2f7b759c5aecd6a9ceba3e2717
quartz/bootstrap-cli.mjs
@@ -393,10 +393,16 @@
    })
    const buildMutex = new Mutex()
    const timeoutIds = new Set()
    let lastBuildMs = 0
    let cleanupBuild = null
    const build = async (clientRefresh) => {
      const buildStart = new Date().getTime()
      lastBuildMs = buildStart
      const release = await buildMutex.acquire()
      if (lastBuildMs > buildStart) {
        release()
        return
      }
      if (cleanupBuild) {
        await cleanupBuild()
@@ -428,12 +434,6 @@
      clientRefresh()
    }
    const rebuild = (clientRefresh) => {
      timeoutIds.forEach((id) => clearTimeout(id))
      timeoutIds.clear()
      timeoutIds.add(setTimeout(() => build(clientRefresh), 250))
    }
    if (argv.serve) {
      const connections = []
      const clientRefresh = () => connections.forEach((conn) => conn.send("rebuild"))
@@ -539,7 +539,7 @@
          ignoreInitial: true,
        })
        .on("all", async () => {
          rebuild(clientRefresh)
          build(clientRefresh)
        })
    } else {
      await build(() => {})