Skip to content

Commit d540040

Browse files
more diagnostics
1 parent b4a51cb commit d540040

File tree

1 file changed

+20
-16
lines changed
  • packages/vite-plugin-cloudflare/src

1 file changed

+20
-16
lines changed

packages/vite-plugin-cloudflare/src/index.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,7 @@ export function cloudflare(pluginConfig: PluginConfig = {}): vite.Plugin[] {
107107
let containerImageTagsSeen: Set<string> | undefined;
108108
let runningContainerIds: Array<string>;
109109

110-
// This is needed so that we can tell the difference between the Vite http server closing and restarting.
111-
let previousServer: unknown;
112110
let restartingServer = false;
113-
function updateRestartingServerFlag(viteDevServer: unknown) {
114-
restartingServer =
115-
previousServer !== undefined && viteDevServer !== previousServer;
116-
previousServer = viteDevServer;
117-
}
118111

119112
return [
120113
{
@@ -350,7 +343,17 @@ if (import.meta.hot) {
350343
// Vite `configureServer` Hook
351344
// see https://vite.dev/guide/api-plugin.html#configureserver
352345
async configureServer(viteDevServer) {
353-
updateRestartingServerFlag(viteDevServer);
346+
const restartServer = viteDevServer.restart.bind(viteDevServer);
347+
viteDevServer.restart = async () => {
348+
try {
349+
restartingServer = true;
350+
debuglog(configId, "From server.restart(): Restarting server...");
351+
await restartServer();
352+
debuglog(configId, "From server.restart(): Restarted server...");
353+
} finally {
354+
restartingServer = false;
355+
}
356+
};
354357
assertIsNotPreview(resolvedPluginConfig);
355358

356359
// It is possible to get into a situation where the dev server is restarted by a config file change
@@ -426,7 +429,12 @@ if (import.meta.hot) {
426429
return;
427430
}
428431

429-
debuglog(configId, new Error("").stack);
432+
debuglog(
433+
configId,
434+
new Error("").stack?.includes("restartServer")
435+
? "From stack trace: restarting server..."
436+
: "From stack trace: creating new server..."
437+
);
430438

431439
if (!miniflare) {
432440
debuglog(configId, "Creating new Miniflare instance");
@@ -624,7 +632,6 @@ if (import.meta.hot) {
624632
// Vite `configurePreviewServer` Hook
625633
// see https://vite.dev/guide/api-plugin.html#configurepreviewserver
626634
async configurePreviewServer(vitePreviewServer) {
627-
updateRestartingServerFlag(vitePreviewServer);
628635
assertIsPreview(resolvedPluginConfig);
629636

630637
const inputInspectorPort = await getInputInspectorPortOption(
@@ -719,16 +726,13 @@ if (import.meta.hot) {
719726
runningContainerIds = [];
720727
}
721728

729+
debuglog("buildEnd:", restartingServer ? "restarted" : "disposing");
722730
if (!restartingServer) {
723-
debuglog("Disposing Miniflare instance");
731+
debuglog("buildEnd: disposing Miniflare instance");
724732
await miniflare?.dispose().catch((error) => {
725-
console.error("Error disposing Miniflare instance:", error);
733+
debuglog("buildEnd: failed to dispose Miniflare instance:", error);
726734
});
727735
miniflare = undefined;
728-
} else {
729-
debuglog(
730-
"Vite is restarting so do not dispose of Miniflare instance"
731-
);
732736
}
733737
// Reset the flag so that if a `buildEnd` hook is called again before the next
734738
// configureServer hook then we do dispose of miniflare correctly.

0 commit comments

Comments
 (0)