From c1a04ac86cddeb9d063267b745a6e0cfe9ef40cb Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sat, 27 Apr 2024 14:59:07 +0530 Subject: [PATCH] fix(dev): multiple server instances being created when editing config too frequently --- src/node/cli.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/node/cli.ts b/src/node/cli.ts index 71eb4c0f..acccda7f 100644 --- a/src/node/cli.ts +++ b/src/node/cli.ts @@ -20,6 +20,8 @@ if (root) { argv.root = root } +let restartPromise: Promise | undefined + if (!command || command === 'dev') { if (argv.force) { delete argv.force @@ -28,8 +30,16 @@ if (!command || command === 'dev') { const createDevServer = async () => { const server = await createServer(root, argv, async () => { - await server.close() - await createDevServer() + if (!restartPromise) { + restartPromise = (async () => { + await server.close() + await createDevServer() + })().finally(() => { + restartPromise = undefined + }) + } + + return restartPromise }) await server.listen() logVersion(server.config.logger)