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); }