import type { ClassProvider, FactoryProvider, Provider, ValueProvider, } from '@nestjs/common'; import { isUndefined } from '@nestjs/common/internal'; export function isClassProvider( provider: Provider, ): provider is ClassProvider { return Boolean((provider as ClassProvider)?.useClass); } export function isValueProvider( provider: Provider, ): provider is ValueProvider { const providerValue = (provider as ValueProvider)?.useValue; return !isUndefined(providerValue); } export function isFactoryProvider( provider: Provider, ): provider is FactoryProvider { return Boolean((provider as FactoryProvider).useFactory); }