Skip to content

Commit 63a234d

Browse files
committed
fix: handle server termination
1 parent 0371e80 commit 63a234d

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/index.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,22 @@ try {
3131

3232
const transport = createEJsonTransport();
3333

34+
process.on("SIGINT", () => {
35+
logger.info(LogId.serverCloseRequested, "server", `Server close requested`);
36+
37+
server
38+
.close()
39+
.then(() => {
40+
logger.info(LogId.serverClosed, "server", `Server closed successfully`);
41+
process.exit(0);
42+
})
43+
.catch((err: unknown) => {
44+
const error = err instanceof Error ? err : new Error(String(err));
45+
logger.error(LogId.serverCloseFailure, "server", `Error closing server: ${error.message}`);
46+
process.exit(1);
47+
});
48+
});
49+
3450
await server.connect(transport);
3551
} catch (error: unknown) {
3652
logger.emergency(LogId.serverStartFailure, "server", `Fatal error running server: ${error as string}`);

src/logger.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ export type LogLevel = LoggingMessageNotification["params"]["level"];
99
export const LogId = {
1010
serverStartFailure: mongoLogId(1_000_001),
1111
serverInitialized: mongoLogId(1_000_002),
12+
serverCloseRequested: mongoLogId(1_000_003),
13+
serverClosed: mongoLogId(1_000_004),
14+
serverCloseFailure: mongoLogId(1_000_005),
1215

1316
atlasCheckCredentials: mongoLogId(1_001_001),
1417
atlasDeleteDatabaseUserFailure: mongoLogId(1_001_002),

0 commit comments

Comments
 (0)