Я использую горячую перезагрузку модуля (hmr) для своего приложения nest.js.Перезагрузка работает, но не ждет полного закрытия старого экземпляра (соединение с базой данных, бот Telegram, ...) перед запуском нового экземпляра.Это заставляет typeorm выдавать следующую ошибку:
AlreadyHasActiveConnectionError: Cannot create a new connection named "default", because connection with such name already exist and it now has an active connection session.
В моем main.ts
у меня есть обработчик dispose, который закрывает старый экземпляр:
if (module && module.hot) {
module.hot.accept();
module.hot.dispose(async () => {
console.log('disposing module');
await app.close();
console.log('has closed app');
});
}
Когда я запускаю hmr и внослю измененияв моем приложении я вижу, что он вызывает обработчик dispose и немедленно запускает новое приложение.Как я могу заставить webpack ждать обещание разрешить, возвращаемое обработчиком dispose, перед запуском нового экземпляра?