import { Injectable, OnModuleInit } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
@Injectable()
export class LockerDiscover implements OnModuleInit {
private static moduleRef: ModuleRef;
constructor(private readonly moduleRef: ModuleRef) {}
onModuleInit() {
LockerDiscover.moduleRef = this.moduleRef;
}
static get<T>(type: new (...args: any[]) => T): T {
if (!LockerDiscover.moduleRef) {
throw new Error('ServiceLocator not initialized');
}
return LockerDiscover.moduleRef.get(type, { strict: false });
}
}