From 34bdd08dad26511cd090a7460d9e733abe0d78e6 Mon Sep 17 00:00:00 2001
From: Nadim <dimbslmh@gmail.com>
Date: Fri, 22 Mar 2024 00:45:50 +0700
Subject: [PATCH 1/2] fix: Prefix requires a leading forward slash to load
 static folder correctly

---
 packages/nestjs/src/bull-board.root-module.ts | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/packages/nestjs/src/bull-board.root-module.ts b/packages/nestjs/src/bull-board.root-module.ts
index 5a93f0190..882eef616 100644
--- a/packages/nestjs/src/bull-board.root-module.ts
+++ b/packages/nestjs/src/bull-board.root-module.ts
@@ -17,8 +17,13 @@ export class BullBoardRootModule implements NestModule {
   }
 
   configure(consumer: MiddlewareConsumer): any {
-    const globalPrefix = this.applicationConfig.getGlobalPrefix() || '';
-    this.adapter.setBasePath(`${ globalPrefix }${ this.options.route }`);
+    const globalPrefix = this.applicationConfig.getGlobalPrefix();
+    const prefix = `${globalPrefix}${this.options.route}`.replace(
+      /^\/?([^\/]+(?:\/[^\/]+)*)\/?$/,
+      '/$1'
+    );
+
+    this.adapter.setBasePath(prefix);
 
     if (isExpressAdapter(this.adapter)) {
       return consumer
@@ -29,7 +34,7 @@ export class BullBoardRootModule implements NestModule {
     if (isFastifyAdapter(this.adapter)) {
       this.adapterHost.httpAdapter
         .getInstance()
-        .register(this.adapter.registerPlugin(), {prefix: this.options.route});
+        .register(this.adapter.registerPlugin(), { prefix });
 
       return consumer
         .apply(this.options.middleware)

From 081ea412c50609945f6f49211e0320dc3bad1670 Mon Sep 17 00:00:00 2001
From: Nadim <dimbslmh@gmail.com>
Date: Sun, 24 Mar 2024 19:27:19 +0700
Subject: [PATCH 2/2] feat: Replace String.replace with addForwardSlash
 function

---
 packages/nestjs/src/bull-board.root-module.ts | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/packages/nestjs/src/bull-board.root-module.ts b/packages/nestjs/src/bull-board.root-module.ts
index 882eef616..becb01e02 100644
--- a/packages/nestjs/src/bull-board.root-module.ts
+++ b/packages/nestjs/src/bull-board.root-module.ts
@@ -17,11 +17,10 @@ export class BullBoardRootModule implements NestModule {
   }
 
   configure(consumer: MiddlewareConsumer): any {
-    const globalPrefix = this.applicationConfig.getGlobalPrefix();
-    const prefix = `${globalPrefix}${this.options.route}`.replace(
-      /^\/?([^\/]+(?:\/[^\/]+)*)\/?$/,
-      '/$1'
-    );
+    const addForwardSlash = (path: string) => {
+      return path.startsWith('/') || path === '' ? path : `/${path}`;
+    };
+    const prefix = addForwardSlash(this.applicationConfig.getGlobalPrefix() + this.options.route);
 
     this.adapter.setBasePath(prefix);
 
@@ -36,7 +35,7 @@ export class BullBoardRootModule implements NestModule {
         .getInstance()
         .register(this.adapter.registerPlugin(), { prefix });
 
-      return consumer
+        return consumer
         .apply(this.options.middleware)
         .forRoutes(this.options.route);
     }