INNER CODE UNIT · TypeScript
waitForShutdown
oomol-lab/open-connector · src/server/index.ts:182
function waitForShutdown(server: ServerType, runtime: ConnectorRuntime): Promise<void> {
return new Promise((resolve, reject) => {
let closing = false;
const shutdown = (): void => {
if (closing) {
return;
}
closing = true;
// Stop accepting requests and abort connector work together so an active provider call cannot hold shutdown open.
const closed = new Promise<void>((done, fail) => server.close((error) => (error ? fail(error) : done())));
void Promise.all([closed, runtime.close()]).then(
() => finish(),
(error) => finish(error),
);
function finish(error?: unknown): void {
process.removeListener("SIGINT", shutdown);
process.removeListener("SIGTERM", shutdown);
if (error) {