Ana içeriğe geç

Kullanım

Sağlayıcı servisleri işaretle

Fabrika üzerinden çözümlenmesini istediğin injectable servislerde @FactoryProvider(factoryName, providerName) kullan.

providers/csv.service.ts
import { Injectable } from '@nestjs/common';
import { FactoryProvider } from 'nestjs-factory-pattern-module';

@Injectable()
@FactoryProvider('EXPORT_SERVICE', 'csv')
export class CsvProviderService {
// ...
}

Fabrikayı inject et

Modül, InjectFactory yardımcı decorator’ını export eder. Bu, temelde @Inject(factoryName) ile aynıdır.

my.service.ts
import { Injectable } from '@nestjs/common';
import {
FactoryService,
InjectFactory,
} from 'nestjs-factory-pattern-module';

@Injectable()
export class MyService {
constructor(
@InjectFactory('EXPORT_SERVICE')
private readonly factory: FactoryService<any>,
) {}

async getProvider(type: string) {
return this.factory.getProviderServiceAsync(type);
}
}

Notlar

  • Sağlayıcı keşfi, FactoryService oluşturulurken yapılır.
  • Bir type için servis bulunamazsa getProviderServiceAsync hata fırlatır.