From 9d4e3d39f4d18b5a7735d1666e464cf2bfb60c52 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 19 Dec 2025 20:32:26 +0100 Subject: [PATCH] Dont use promises for dummy endpoints --- src/api/routes/applications/#application_id/skus.ts | 2 +- src/api/routes/attachments/refresh-urls.ts | 2 +- .../routes/channels/#channel_id/directory-entries.ts | 2 +- .../#channel_id/messages/#message_id/index.ts | 2 +- src/api/routes/channels/preload-messages.ts | 11 +++++------ .../#connection_name/#connection_id/refresh.ts | 2 +- src/api/routes/guilds/#guild_id/audit-logs.ts | 2 +- .../routes/guilds/#guild_id/discovery-requirements.ts | 2 +- src/api/routes/guilds/#guild_id/integrations.ts | 2 +- .../routes/guilds/#guild_id/member-verification.ts | 2 +- src/api/routes/guilds/#guild_id/premium.ts | 2 +- src/api/routes/guilds/#guild_id/widget.png.ts | 2 +- .../routes/guilds/automations/email-domain-lookup.ts | 4 ++-- src/api/routes/guilds/templates/index.ts | 2 +- src/api/routes/hub-waitlist.ts | 2 +- src/api/routes/oauth2/tokens.ts | 2 +- src/api/routes/outbound-promotions.ts | 2 +- src/api/routes/partners/#guild_id/requirements.ts | 2 +- src/api/routes/policies/instance/domains.ts | 2 +- src/api/routes/policies/instance/index.ts | 2 +- src/api/routes/policies/instance/limits.ts | 2 +- .../routes/scheduled-maintenances/upcoming.json.ts | 2 +- src/api/routes/stage-instances.ts | 2 +- src/api/routes/stop.ts | 2 +- .../applications/#application_id/index.ts | 2 +- .../#application_id/subscription-plans.ts | 2 +- src/api/routes/store/published-listings/skus.ts | 2 +- .../skus/#sku_id/subscription-plans.ts | 2 +- .../@me/applications/#application_id/entitlements.ts | 2 +- src/api/routes/users/@me/billing/country-code.ts | 2 +- src/api/routes/users/@me/billing/location-info.ts | 2 +- src/api/routes/users/@me/billing/subscriptions.ts | 2 +- src/api/routes/users/@me/collectibles-marketing.ts | 2 +- src/api/routes/users/@me/collectibles-purchases.ts | 2 +- src/util/dtos/DmChannelDTO.ts | 4 ++-- src/util/util/WebAuthn.ts | 2 +- src/util/util/networking/ipdata/IpDataClient.ts | 7 ++++--- src/webrtc/Server.ts | 2 +- 38 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/api/routes/applications/#application_id/skus.ts b/src/api/routes/applications/#application_id/skus.ts index 9b9e3387e..cd0eb0f75 100644 --- a/src/api/routes/applications/#application_id/skus.ts +++ b/src/api/routes/applications/#application_id/skus.ts @@ -30,7 +30,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { res.json([]).status(200); }, ); diff --git a/src/api/routes/attachments/refresh-urls.ts b/src/api/routes/attachments/refresh-urls.ts index f1530914c..38bbf8d7c 100644 --- a/src/api/routes/attachments/refresh-urls.ts +++ b/src/api/routes/attachments/refresh-urls.ts @@ -35,7 +35,7 @@ router.post( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { attachment_urls } = req.body as RefreshUrlsRequestSchema; const refreshed_urls = attachment_urls.map((url) => { diff --git a/src/api/routes/channels/#channel_id/directory-entries.ts b/src/api/routes/channels/#channel_id/directory-entries.ts index da950502a..98958d561 100644 --- a/src/api/routes/channels/#channel_id/directory-entries.ts +++ b/src/api/routes/channels/#channel_id/directory-entries.ts @@ -33,7 +33,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { res.json([] as HubDirectoryEntriesResponse); }, ); diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts index 64f29c931..6457c7eb3 100644 --- a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts +++ b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts @@ -142,7 +142,7 @@ router.patch( router.put( "/", messageUpload.single("file"), - async (req, res, next) => { + (req, res, next) => { if (req.body.payload_json) { req.body = JSON.parse(req.body.payload_json); } diff --git a/src/api/routes/channels/preload-messages.ts b/src/api/routes/channels/preload-messages.ts index 6a1905243..f50129fad 100644 --- a/src/api/routes/channels/preload-messages.ts +++ b/src/api/routes/channels/preload-messages.ts @@ -45,12 +45,11 @@ router.post( const messages = ( await Promise.all( - body.channels.map( - async (channelId) => - await Message.findOne({ - where: { channel_id: channelId }, - order: { timestamp: "DESC" }, - }), + body.channels.map((channelId) => + Message.findOne({ + where: { channel_id: channelId }, + order: { timestamp: "DESC" }, + }), ), ) ).filter((x) => x !== null) as Message[]; diff --git a/src/api/routes/connections/#connection_name/#connection_id/refresh.ts b/src/api/routes/connections/#connection_name/#connection_id/refresh.ts index 4a1a1cb46..f575f0a09 100644 --- a/src/api/routes/connections/#connection_name/#connection_id/refresh.ts +++ b/src/api/routes/connections/#connection_name/#connection_id/refresh.ts @@ -20,7 +20,7 @@ import { route } from "@spacebar/api"; import { Request, Response, Router } from "express"; const router = Router({ mergeParams: true }); -router.post("/", route({}), async (req: Request, res: Response) => { +router.post("/", route({}), (req: Request, res: Response) => { // TODO: // const { connection_name, connection_id } = req.params; res.sendStatus(204); diff --git a/src/api/routes/guilds/#guild_id/audit-logs.ts b/src/api/routes/guilds/#guild_id/audit-logs.ts index 4acc8e50f..b3bfab3c4 100644 --- a/src/api/routes/guilds/#guild_id/audit-logs.ts +++ b/src/api/routes/guilds/#guild_id/audit-logs.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); //TODO: implement audit logs -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { res.json({ audit_log_entries: [], users: [], diff --git a/src/api/routes/guilds/#guild_id/discovery-requirements.ts b/src/api/routes/guilds/#guild_id/discovery-requirements.ts index 150c9209a..255127691 100644 --- a/src/api/routes/guilds/#guild_id/discovery-requirements.ts +++ b/src/api/routes/guilds/#guild_id/discovery-requirements.ts @@ -30,7 +30,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { guild_id } = req.params; // TODO: // Load from database diff --git a/src/api/routes/guilds/#guild_id/integrations.ts b/src/api/routes/guilds/#guild_id/integrations.ts index 704b5a50b..7eb088e12 100644 --- a/src/api/routes/guilds/#guild_id/integrations.ts +++ b/src/api/routes/guilds/#guild_id/integrations.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); //TODO: implement integrations list -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { res.json([]); }); export default router; diff --git a/src/api/routes/guilds/#guild_id/member-verification.ts b/src/api/routes/guilds/#guild_id/member-verification.ts index 11b36a3cc..aaf95a851 100644 --- a/src/api/routes/guilds/#guild_id/member-verification.ts +++ b/src/api/routes/guilds/#guild_id/member-verification.ts @@ -29,7 +29,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { // TODO: member verification res.status(404).json({ diff --git a/src/api/routes/guilds/#guild_id/premium.ts b/src/api/routes/guilds/#guild_id/premium.ts index fc0d34bf5..f73de1190 100644 --- a/src/api/routes/guilds/#guild_id/premium.ts +++ b/src/api/routes/guilds/#guild_id/premium.ts @@ -20,7 +20,7 @@ import { Router, Request, Response } from "express"; import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); -router.get("/subscriptions", route({}), async (req: Request, res: Response) => { +router.get("/subscriptions", route({}), (req: Request, res: Response) => { // TODO: res.json([]); }); diff --git a/src/api/routes/guilds/#guild_id/widget.png.ts b/src/api/routes/guilds/#guild_id/widget.png.ts index b0abc95ba..3ff95e995 100644 --- a/src/api/routes/guilds/#guild_id/widget.png.ts +++ b/src/api/routes/guilds/#guild_id/widget.png.ts @@ -134,7 +134,7 @@ async function drawIcon(canvas: any, x: number, y: number, scale: number, icon: canvas.restore(); } -async function drawText(canvas: any, x: number, y: number, color: string, font: string, text: string, maxcharacters?: number) { +function drawText(canvas: any, x: number, y: number, color: string, font: string, text: string, maxcharacters?: number) { canvas.fillStyle = color; canvas.font = font; if (text.length > (maxcharacters || 0) && maxcharacters) text = text.slice(0, maxcharacters) + "..."; diff --git a/src/api/routes/guilds/automations/email-domain-lookup.ts b/src/api/routes/guilds/automations/email-domain-lookup.ts index 605026ba6..943097f8f 100644 --- a/src/api/routes/guilds/automations/email-domain-lookup.ts +++ b/src/api/routes/guilds/automations/email-domain-lookup.ts @@ -38,7 +38,7 @@ router.post( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { email } = req.body as EmailDomainLookupSchema; const [_, tld] = email.split("@"); @@ -73,7 +73,7 @@ router.post( 501: {}, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { email } = req.body as EmailDomainLookupVerifyCodeSchema; const [_, tld] = email.split("@"); diff --git a/src/api/routes/guilds/templates/index.ts b/src/api/routes/guilds/templates/index.ts index e5dfd684c..51d2fd3b1 100644 --- a/src/api/routes/guilds/templates/index.ts +++ b/src/api/routes/guilds/templates/index.ts @@ -87,7 +87,7 @@ async function getTemplate(code: string) { headers: { "Content-Type": "application/json" }, }); - return await discordTemplateData.json(); + return (await discordTemplateData.json()) as Template; } if (code.startsWith("external:")) { diff --git a/src/api/routes/hub-waitlist.ts b/src/api/routes/hub-waitlist.ts index 43c2662b0..bd9a8253f 100644 --- a/src/api/routes/hub-waitlist.ts +++ b/src/api/routes/hub-waitlist.ts @@ -34,7 +34,7 @@ router.post( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { email, school } = req.body as HubWaitlistSignupSchema; res.json({ diff --git a/src/api/routes/oauth2/tokens.ts b/src/api/routes/oauth2/tokens.ts index 4af106115..27aa1e7c3 100644 --- a/src/api/routes/oauth2/tokens.ts +++ b/src/api/routes/oauth2/tokens.ts @@ -20,7 +20,7 @@ import { Router, Request, Response } from "express"; import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([]); }); diff --git a/src/api/routes/outbound-promotions.ts b/src/api/routes/outbound-promotions.ts index e8e6f6570..6641df6ad 100644 --- a/src/api/routes/outbound-promotions.ts +++ b/src/api/routes/outbound-promotions.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([]).status(200); }); diff --git a/src/api/routes/partners/#guild_id/requirements.ts b/src/api/routes/partners/#guild_id/requirements.ts index 9a08bc6bf..3f0e48c67 100644 --- a/src/api/routes/partners/#guild_id/requirements.ts +++ b/src/api/routes/partners/#guild_id/requirements.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { const { guild_id } = req.params; // TODO: // Load from database diff --git a/src/api/routes/policies/instance/domains.ts b/src/api/routes/policies/instance/domains.ts index 7aaaeb592..32a7079bb 100644 --- a/src/api/routes/policies/instance/domains.ts +++ b/src/api/routes/policies/instance/domains.ts @@ -30,7 +30,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { cdn, gateway, api } = Config.get(); res.json({ diff --git a/src/api/routes/policies/instance/index.ts b/src/api/routes/policies/instance/index.ts index a54570f70..bb04475f9 100644 --- a/src/api/routes/policies/instance/index.ts +++ b/src/api/routes/policies/instance/index.ts @@ -30,7 +30,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { general } = Config.get(); res.json(general); }, diff --git a/src/api/routes/policies/instance/limits.ts b/src/api/routes/policies/instance/limits.ts index 7ade15196..375c72175 100644 --- a/src/api/routes/policies/instance/limits.ts +++ b/src/api/routes/policies/instance/limits.ts @@ -30,7 +30,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { const { limits } = Config.get(); res.json(limits); }, diff --git a/src/api/routes/scheduled-maintenances/upcoming.json.ts b/src/api/routes/scheduled-maintenances/upcoming.json.ts index 5958d582f..b21507444 100644 --- a/src/api/routes/scheduled-maintenances/upcoming.json.ts +++ b/src/api/routes/scheduled-maintenances/upcoming.json.ts @@ -20,7 +20,7 @@ import { Router, Request, Response } from "express"; import { route } from "@spacebar/api"; const router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { res.json({ page: {}, scheduled_maintenances: {}, diff --git a/src/api/routes/stage-instances.ts b/src/api/routes/stage-instances.ts index e8e6f6570..6641df6ad 100644 --- a/src/api/routes/stage-instances.ts +++ b/src/api/routes/stage-instances.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([]).status(200); }); diff --git a/src/api/routes/stop.ts b/src/api/routes/stop.ts index be29e0ade..4f8697350 100644 --- a/src/api/routes/stop.ts +++ b/src/api/routes/stop.ts @@ -32,7 +32,7 @@ router.post( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { console.log(`/stop was called by ${req.user_id} at ${new Date()}`); res.sendStatus(200); process.kill(process.pid, "SIGTERM"); diff --git a/src/api/routes/store/published-listings/applications/#application_id/index.ts b/src/api/routes/store/published-listings/applications/#application_id/index.ts index 39fa9db21..bffb572bd 100644 --- a/src/api/routes/store/published-listings/applications/#application_id/index.ts +++ b/src/api/routes/store/published-listings/applications/#application_id/index.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO // const id = req.params.id; res.json({ diff --git a/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts b/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts index 953e3919a..a59eaae5e 100644 --- a/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts +++ b/src/api/routes/store/published-listings/applications/#application_id/subscription-plans.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([ { diff --git a/src/api/routes/store/published-listings/skus.ts b/src/api/routes/store/published-listings/skus.ts index 03cbab462..01bbc8b27 100644 --- a/src/api/routes/store/published-listings/skus.ts +++ b/src/api/routes/store/published-listings/skus.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/:sku_id", route({}), async (req: Request, res: Response) => { +router.get("/:sku_id", route({}), (req: Request, res: Response) => { //TODO // const id = req.params.id; res.json({ diff --git a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts index 0aae14950..2c9ad4e09 100644 --- a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts +++ b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts @@ -316,7 +316,7 @@ const skus = new Map([ ], ]); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { // TODO: add the ability to add custom const { sku_id } = req.params; diff --git a/src/api/routes/users/@me/applications/#application_id/entitlements.ts b/src/api/routes/users/@me/applications/#application_id/entitlements.ts index e8e6f6570..6641df6ad 100644 --- a/src/api/routes/users/@me/applications/#application_id/entitlements.ts +++ b/src/api/routes/users/@me/applications/#application_id/entitlements.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([]).status(200); }); diff --git a/src/api/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts index 8bddafc3f..dd2be6d43 100644 --- a/src/api/routes/users/@me/billing/country-code.ts +++ b/src/api/routes/users/@me/billing/country-code.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json({ country_code: "US" }).status(200); }); diff --git a/src/api/routes/users/@me/billing/location-info.ts b/src/api/routes/users/@me/billing/location-info.ts index 918ea9139..5a57c0ea6 100644 --- a/src/api/routes/users/@me/billing/location-info.ts +++ b/src/api/routes/users/@me/billing/location-info.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO // TODO: subdivision_code (optional) res.json({ country_code: "US" }).status(200); diff --git a/src/api/routes/users/@me/billing/subscriptions.ts b/src/api/routes/users/@me/billing/subscriptions.ts index e8e6f6570..6641df6ad 100644 --- a/src/api/routes/users/@me/billing/subscriptions.ts +++ b/src/api/routes/users/@me/billing/subscriptions.ts @@ -21,7 +21,7 @@ import { route } from "@spacebar/api"; const router: Router = Router({ mergeParams: true }); -router.get("/", route({}), async (req: Request, res: Response) => { +router.get("/", route({}), (req: Request, res: Response) => { //TODO res.json([]).status(200); }); diff --git a/src/api/routes/users/@me/collectibles-marketing.ts b/src/api/routes/users/@me/collectibles-marketing.ts index a043a146c..f7d246231 100644 --- a/src/api/routes/users/@me/collectibles-marketing.ts +++ b/src/api/routes/users/@me/collectibles-marketing.ts @@ -39,7 +39,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { res.send({ marketings: {}, } as CollectiblesMarketingResponse); diff --git a/src/api/routes/users/@me/collectibles-purchases.ts b/src/api/routes/users/@me/collectibles-purchases.ts index 1e6a08d0d..26f23ed68 100644 --- a/src/api/routes/users/@me/collectibles-purchases.ts +++ b/src/api/routes/users/@me/collectibles-purchases.ts @@ -38,7 +38,7 @@ router.get( }, }, }), - async (req: Request, res: Response) => { + (req: Request, res: Response) => { res.send([]); }, ); diff --git a/src/util/dtos/DmChannelDTO.ts b/src/util/dtos/DmChannelDTO.ts index 5ab8ec4b1..956fe48a4 100644 --- a/src/util/dtos/DmChannelDTO.ts +++ b/src/util/dtos/DmChannelDTO.ts @@ -43,8 +43,8 @@ export class DmChannelDTO { await Promise.all( channel.recipients ?.filter((r) => !excluded_recipients.includes(r.user_id)) - .map(async (r) => { - return await User.findOneOrFail({ + .map((r) => { + return User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection, }); diff --git a/src/util/util/WebAuthn.ts b/src/util/util/WebAuthn.ts index b69af5ce1..f3750e7ca 100644 --- a/src/util/util/WebAuthn.ts +++ b/src/util/util/WebAuthn.ts @@ -55,7 +55,7 @@ export async function generateWebAuthnTicket(challenge: string): Promise export async function verifyWebAuthnToken(token: string) { return new Promise((res, rej) => { loadOrGenerateKeypair().then((kp) => - jwt.verify(token, kp.publicKey, jwtVerifyOptions, async (err, decoded) => { + jwt.verify(token, kp.publicKey, jwtVerifyOptions, (err, decoded) => { if (err) return rej(err); return res(decoded); }), diff --git a/src/util/util/networking/ipdata/IpDataClient.ts b/src/util/util/networking/ipdata/IpDataClient.ts index 96b4c0767..2812ef593 100644 --- a/src/util/util/networking/ipdata/IpDataClient.ts +++ b/src/util/util/networking/ipdata/IpDataClient.ts @@ -16,11 +16,12 @@ export class IpDataClient { if (this.ipInfoCache.get(ip)?.expires ?? 0 > Date.now()) return this.ipInfoCache.get(ip)!.data; console.log(`[IpData] Fetching info for IP address ${ip}...`); - const resp = (await (await fetch(`https://eu-api.ipdata.co/${ip}?api-key=${ipdataApiKey}`)).json()) as Promise; + const response = await fetch(`https://eu-api.ipdata.co/${ip}?api-key=${ipdataApiKey}`); + const data = (await response.json()) as IpDataIpLookupResponse; this.ipInfoCache.set(ip, { - data: await resp, + data: data, expires: new DateBuilder().addHours(12).buildTimestamp(), }); - return await resp; + return data; } } diff --git a/src/webrtc/Server.ts b/src/webrtc/Server.ts index 334b9112e..312a97c9b 100644 --- a/src/webrtc/Server.ts +++ b/src/webrtc/Server.ts @@ -79,7 +79,7 @@ export class Server { } async stop() { - closeDatabase(); + await closeDatabase(); this.server.close(); mediaServer?.stop(); }