diff --git a/index.ts b/index.ts index a203c16..1a1c7eb 100644 --- a/index.ts +++ b/index.ts @@ -3,11 +3,31 @@ import { logger } from "./logger"; const port = app.get("port"); const host = app.get("host"); - -process.on("unhandledRejection", (reason) => - logger.error("Unhandled Rejection %O", reason), -); +const server = app.listen(port); app.listen(port).then(() => { - logger.info(`Feathers app listening on http://${host}:${port}`); + logger.info(`Walias app listening on http://${host}:${port}`); +}); + +process.on("SIGINT", () => { + logger.info("Received SIGINT signal. Shutting down gracefully."); + + server.close(() => { + logger.info("HTTP server closed."); + process.exit(0); + }); +}); + +process.on("SIGTERM", () => { + logger.info("Received SIGTERM signal. Shutting down gracefully."); + + server.close(() => { + logger.info("HTTP server closed."); + process.exit(0); + }); +}); + +process.on("unhandledRejection", (reason) => { + logger.error("Unhandled rejection", reason); + process.exit(1); }); diff --git a/src/services/aliases/aliases.class.ts b/src/services/aliases/aliases.class.ts index e64ab35..af938e3 100644 --- a/src/services/aliases/aliases.class.ts +++ b/src/services/aliases/aliases.class.ts @@ -47,7 +47,7 @@ export interface AliasesParams extends Params { export class AliasesService implements ServiceInterface { - constructor(public options: AliasesServiceOptions) { } + constructor(public options: AliasesServiceOptions) {} async find(params: ServiceParams): Promise { const userId = await this.getUserIdByEmailAddress(params); @@ -117,7 +117,10 @@ export class AliasesService const allowedDomain: string = config.get("wildDuck.domain"); // If address does not match the allowed domain, throw an error - if (!allowedDomain || !addressInfoResponse.address.endsWith(allowedDomain)) { + if ( + !allowedDomain || + !addressInfoResponse.address.endsWith(allowedDomain) + ) { throw new BadRequest("Unable to delete address"); }