@iqai/adk-cli
Version:
CLI tool for creating, running, and testing ADK-TS agents
41 lines ⢠1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createGracefulShutdownHandler = createGracefulShutdownHandler;
const chalk_1 = __importDefault(require("chalk"));
function createGracefulShutdownHandler(server, options) {
let shuttingDown = false;
return async () => {
if (shuttingDown)
return;
shuttingDown = true;
if (!options.quiet) {
console.log(chalk_1.default.yellow(`\nš Stopping ${options.name}...`));
}
const FORCE_EXIT_MS = Number(process.env.ADK_FORCE_EXIT_MS || 5000);
const timeout = setTimeout(() => {
if (!options.quiet) {
console.error(chalk_1.default.red(`Force exiting after ${FORCE_EXIT_MS}ms. Some resources may not have closed cleanly.`));
}
process.exit(1);
}, FORCE_EXIT_MS);
timeout.unref?.();
let exitCode = 0;
try {
await server.stop();
}
catch (e) {
if (!options.quiet) {
console.error(chalk_1.default.red("Error during shutdown:"), e);
}
exitCode = 1;
}
finally {
clearTimeout(timeout);
process.exit(exitCode);
}
};
}
//# sourceMappingURL=graceful-shutdown.js.map