From 153a86ab59055918d871ef19c6fe5861803391c4 Mon Sep 17 00:00:00 2001 From: Katja Lutz Date: Wed, 27 Jul 2022 22:32:43 +0200 Subject: [PATCH] chore: implement server onExit utility --- src/server/util.tsx | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/server/util.tsx diff --git a/src/server/util.tsx b/src/server/util.tsx new file mode 100644 index 0000000..c9e8bc3 --- /dev/null +++ b/src/server/util.tsx @@ -0,0 +1,38 @@ +export const onExit = (cb: () => void) => { + /* + const origCb = cb; + cb = () => { + origCb(); + console.log("finished"); + }; + */ + const cbAndExit = () => { + cb(); + process.exit(); + }; + + const exitSignals = [ + "SIGINT", + "SIGTERM", + "uncaughtException", + "SIGUSR1", + "SIGUSR2", + ]; + const cbSignals = ["beforeExit"]; + + for (const signal of exitSignals) { + process.on(signal, cbAndExit); + } + for (const signal of cbSignals) { + process.on(signal, cb); + } + + return () => { + for (const signal of exitSignals) { + process.off(signal, cbAndExit); + } + for (const signal of cbSignals) { + process.off(signal, cb); + } + }; +};