Проблема с не явной связью между Guard и Module

есть Guard в котором юзается сервис(в данном случее prismaService)

import { PrismaService } from '@/prisma/prisma.service';
import { CanActivate, Injectable } from '@nestjs/common';

@Injectable()
export class UserAlreadyExistGuard implements CanActivate {
  constructor(private readonly prismaService: PrismaService) {}
  async canActivate(): Promise<boolean> {
    //prismaService code ...
    return true;
  }
}

есть контроллер который юзает этот Guard

import { Module } from '@nestjs/common';
import { PrismaModule } from '@/prisma/prisma.module';

@Module({
  controllers: [YModule],
  imports: [PrismaModule],
})
export class YModule {}

import { Controller, Get, UseGuards } from '@nestjs/common';
import { UserAlreadyExistGuard } from '@/user/guards/user-already-exist.guard';

@Controller('y')
export class YController {
  constructor() {}
  @UseGuards(UserAlreadyExistGuard)
  @Get('/y')
  get() {
    return 'y';
  }
}

Проблема в том, что связь между @UseGuards(UserAlreadyExistGuard) и импортом PrismaModule в декараторе @Module модуля Y вообще отсутствует.

Допустим, я удалю UserAlreadyExistGuard, так импорт PrismaModule останется мертвым грузом в модуле YModule


Ответы (0 шт):