@apollo/server
Version:
Core engine for Apollo GraphQL server
28 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApolloServerPluginDrainHttpServer = void 0;
const node_abort_controller_1 = require("node-abort-controller");
const stoppable_js_1 = require("./stoppable.js");
function ApolloServerPluginDrainHttpServer(options) {
const stopper = new stoppable_js_1.Stopper(options.httpServer);
return {
async serverWillStart() {
return {
async drainServer() {
const hardDestroyAbortController = new node_abort_controller_1.AbortController();
const stopGracePeriodMillis = options.stopGracePeriodMillis ?? 10000;
let timeout;
if (stopGracePeriodMillis < Infinity) {
timeout = setTimeout(() => hardDestroyAbortController.abort(), stopGracePeriodMillis);
}
await stopper.stop(hardDestroyAbortController.signal);
if (timeout) {
clearTimeout(timeout);
}
},
};
},
};
}
exports.ApolloServerPluginDrainHttpServer = ApolloServerPluginDrainHttpServer;
//# sourceMappingURL=index.js.map