Jacky Zhao
2023-08-17 0998bc355e6425e6b2bdf3d2da7124aa7b63b2a2
quartz/bootstrap-cli.mjs
@@ -355,6 +355,7 @@
      ],
    })
    const timeoutIds = new Set()
    const build = async (clientRefresh) => {
      const result = await ctx.rebuild().catch((err) => {
        console.error(`${chalk.red("Couldn't parse Quartz configuration:")} ${fp}`)
@@ -380,6 +381,11 @@
      clientRefresh()
    }
    const rebuild = (clientRefresh) => {
      timeoutIds.forEach((id) => clearTimeout(id))
      timeoutIds.add(setTimeout(() => build(clientRefresh), 250))
    }
    if (argv.serve) {
      const wss = new WebSocketServer({ port: 3001 })
      const connections = []
@@ -457,10 +463,10 @@
        })
        .on("all", async () => {
          console.log(chalk.yellow("Detected a source code change, doing a hard rebuild..."))
          await build(clientRefresh)
          rebuild(clientRefresh)
        })
    } else {
      await build(() => { })
      await build(() => {})
      ctx.dispose()
    }
  })