From db0214e40f09ae303e201465b095fcd87b81e629 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 24 Apr 2025 08:57:01 +0200 Subject: [PATCH 1/2] Always apply middleware in correct order Fix a race condition in async middleware import. --- sources/@roots/bud-server/src/service/index.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/sources/@roots/bud-server/src/service/index.ts b/sources/@roots/bud-server/src/service/index.ts index e12d44c978..09556b927e 100644 --- a/sources/@roots/bud-server/src/service/index.ts +++ b/sources/@roots/bud-server/src/service/index.ts @@ -93,7 +93,7 @@ export class Server extends Service implements BudServer { this.logger .scope(this.app.label, `server`, `middleware`, key) .log(`disabled`, `bud.context.hot is false`) - return + return null; } /** import middleware */ @@ -110,7 +110,7 @@ export class Server extends Service implements BudServer { this.logger .scope(this.app.label, `server`, `middleware`, key) .log(`unused`) - return + return null; } this.logger @@ -118,11 +118,17 @@ export class Server extends Service implements BudServer { .log(`applied`) .info(this.appliedMiddleware[key]) - /** apply middleware */ - this.application.use(this.appliedMiddleware[key]) + return this.appliedMiddleware[key]; }, ), - ).catch(this.catch) + })).then((middleware) => { + middleware.forEach((m) => { + if (m) { + /** apply middleware */ + this.application.use(m); + } + }); + }).catch(this.catch); } /** From 7d99582e0fe920299da7103abf0a1de993434f10 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 24 Apr 2025 09:19:35 +0200 Subject: [PATCH 2/2] Fix syntax error --- sources/@roots/bud-server/src/service/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/@roots/bud-server/src/service/index.ts b/sources/@roots/bud-server/src/service/index.ts index 09556b927e..7a0d5f6f1b 100644 --- a/sources/@roots/bud-server/src/service/index.ts +++ b/sources/@roots/bud-server/src/service/index.ts @@ -121,7 +121,7 @@ export class Server extends Service implements BudServer { return this.appliedMiddleware[key]; }, ), - })).then((middleware) => { + ).then((middleware) => { middleware.forEach((m) => { if (m) { /** apply middleware */