NestJS resolves a guard referenced via @UseGuards(SomeGuard) using the consuming module's injector, not the guard's own declaring module's injector. OidcAuthGuard and TripMembershipGuard are shared across several feature modules, so every constructor dependency they need (UsersRepository/UsersService, TripMembersRepository, etc.) must be re-exported by AuthModule/TripsLibModule/UsersLibModule, not just the guard classes themselves. Found via the Phase 02 end-to-end smoke test against a mocked IdP, which failed to boot the API before this fix.
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import { Global, Module } from '@nestjs/common';
|
|
import { DatabaseModule } from '../../database/src';
|
|
import { TripsRepository } from './trips.repository';
|
|
import { TripsService } from './trips.service';
|
|
import { TripSettingsRepository } from './trip-settings.repository';
|
|
import { TripSettingsService } from './trip-settings.service';
|
|
import { TripMembersRepository } from './trip-members.repository';
|
|
import { TripMembersService } from './trip-members.service';
|
|
import { TripMembershipGuard } from './trip-membership.guard';
|
|
import { TripInvitationsRepository } from './trip-invitations.repository';
|
|
import { TripInvitationsService } from './trip-invitations.service';
|
|
import { TravelersRepository } from './travelers.repository';
|
|
import { TravelersService } from './travelers.service';
|
|
import { TripPreferenceOverridesRepository } from './trip-preference-overrides.repository';
|
|
import { TripPreferenceOverridesService } from './trip-preference-overrides.service';
|
|
|
|
@Global()
|
|
@Module({
|
|
imports: [DatabaseModule],
|
|
providers: [
|
|
TripsRepository,
|
|
TripsService,
|
|
TripSettingsRepository,
|
|
TripSettingsService,
|
|
TripMembersRepository,
|
|
TripMembersService,
|
|
TripMembershipGuard,
|
|
TripInvitationsRepository,
|
|
TripInvitationsService,
|
|
TravelersRepository,
|
|
TravelersService,
|
|
TripPreferenceOverridesRepository,
|
|
TripPreferenceOverridesService,
|
|
],
|
|
exports: [
|
|
TripsRepository,
|
|
TripsService,
|
|
TripSettingsRepository,
|
|
TripSettingsService,
|
|
TripMembersRepository,
|
|
TripMembersService,
|
|
TripMembershipGuard,
|
|
TripInvitationsRepository,
|
|
TripInvitationsService,
|
|
TravelersRepository,
|
|
TravelersService,
|
|
TripPreferenceOverridesRepository,
|
|
TripPreferenceOverridesService,
|
|
],
|
|
})
|
|
export class TripsLibModule {}
|