feat: init
This commit is contained in:
34
node_modules/nitropack/dist/runtime/internal/shutdown.mjs
generated
vendored
Normal file
34
node_modules/nitropack/dist/runtime/internal/shutdown.mjs
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
import gracefulShutdown from "./lib/http-graceful-shutdown.mjs";
|
||||
export function getGracefulShutdownConfig() {
|
||||
return {
|
||||
disabled: !!process.env.NITRO_SHUTDOWN_DISABLED,
|
||||
signals: (process.env.NITRO_SHUTDOWN_SIGNALS || "SIGTERM SIGINT").split(" ").map((s) => s.trim()),
|
||||
timeout: Number.parseInt(process.env.NITRO_SHUTDOWN_TIMEOUT || "", 10) || 3e4,
|
||||
forceExit: !process.env.NITRO_SHUTDOWN_NO_FORCE_EXIT
|
||||
};
|
||||
}
|
||||
export function setupGracefulShutdown(listener, nitroApp) {
|
||||
const shutdownConfig = getGracefulShutdownConfig();
|
||||
if (shutdownConfig.disabled) {
|
||||
return;
|
||||
}
|
||||
gracefulShutdown(listener, {
|
||||
signals: shutdownConfig.signals.join(" "),
|
||||
timeout: shutdownConfig.timeout,
|
||||
forceExit: shutdownConfig.forceExit,
|
||||
onShutdown: async () => {
|
||||
await new Promise((resolve) => {
|
||||
const timeout = setTimeout(() => {
|
||||
console.warn("Graceful shutdown timeout, force exiting...");
|
||||
resolve();
|
||||
}, shutdownConfig.timeout);
|
||||
nitroApp.hooks.callHook("close").catch((error) => {
|
||||
console.error(error);
|
||||
}).finally(() => {
|
||||
clearTimeout(timeout);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user