diff --git a/src/index.ts b/src/index.ts index 4df1fac..496cb49 100644 --- a/src/index.ts +++ b/src/index.ts @@ -32,6 +32,7 @@ const logger = winston.createLogger({ process.on('uncaughtException', (error: Error) => { logger.error(`Uncaught exception caught: ${error}, cause: ${error.cause}, stack: ${error.stack}`); + process.exit(1); }); process.on('unhandledRejection', (error: Error) => { @@ -78,6 +79,13 @@ addon.use('/', (new ManifestController(sources, extractors)).router); const streamResolver = new StreamResolver(logger, extractorRegistry); addon.use('/', (new StreamController(logger, sources, streamResolver)).router); +// error handler needs to stay at the end of the stack +addon.use((err: Error, _req: Request, _res: Response, next: NextFunction) => { + logger.error(`Error: ${err}, cause: ${err.cause}, stack: ${err.stack}`); + + return next(err); +}); + addon.get('/', (_req: Request, res: Response) => { res.redirect('/configure'); });