@apollo/server
Version:
Core engine for Apollo GraphQL server
24 lines • 979 B
JavaScript
import { AbortController } from 'node-abort-controller';
import { Stopper } from './stoppable.js';
export function ApolloServerPluginDrainHttpServer(options) {
const stopper = new Stopper(options.httpServer);
return {
async serverWillStart() {
return {
async drainServer() {
const hardDestroyAbortController = new 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);
}
},
};
},
};
}
//# sourceMappingURL=index.js.map