diff --git a/src/middleware.helper.ts b/src/middleware.helper.ts index a8119e0..61077e5 100644 --- a/src/middleware.helper.ts +++ b/src/middleware.helper.ts @@ -1,15 +1,23 @@ import type { MikroOrmMiddlewareModuleOptions, NestMiddlewareConsumer } from './typings'; -import type { MiddlewareConsumer } from '@nestjs/common'; +import { type MiddlewareConsumer, HttpStatus } from '@nestjs/common'; export function forRoutesPath(options: MikroOrmMiddlewareModuleOptions, consumer: MiddlewareConsumer) { - const isNestMiddleware = (consumer: MiddlewareConsumer): consumer is NestMiddlewareConsumer => { - return typeof (consumer as any).httpAdapter === 'object'; - }; + if (options.forRoutesPath) { + return options.forRoutesPath; + } + + // detect nest v11 based on a newly added enum value + if (HttpStatus.MULTI_STATUS) { + return '{*all}'; + } + + const isFastify = (consumer: MiddlewareConsumer) => { + if (typeof (consumer as any).httpAdapter !== 'object') { + return false; + } - const usingFastify = (consumer: NestMiddlewareConsumer) => { - return consumer.httpAdapter.constructor.name.toLowerCase().startsWith('fastify'); + return (consumer as NestMiddlewareConsumer).httpAdapter.constructor.name.toLowerCase().startsWith('fastify'); }; - return options.forRoutesPath ?? - (isNestMiddleware(consumer) && usingFastify(consumer) ? '(.*)' : '*'); + return isFastify(consumer) ? '(.*)' : '*'; }