From 7dacc01d12ea15cbfc4843cb3d610bf254dac064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20My=C5=9Bliwiec?= Date: Mon, 3 Feb 2025 13:47:23 +0100 Subject: [PATCH] feat: introduce extra providers for for root async #495 --- packages/bull/lib/bull.module.ts | 4 +++- .../lib/interfaces/shared-bull-config.interface.ts | 13 +++++++++++-- packages/bullmq/lib/bull.module.ts | 4 +++- .../lib/interfaces/shared-bull-config.interface.ts | 12 +++++++++++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/packages/bull/lib/bull.module.ts b/packages/bull/lib/bull.module.ts index f768ccbc1..52d5f6dc7 100644 --- a/packages/bull/lib/bull.module.ts +++ b/packages/bull/lib/bull.module.ts @@ -124,7 +124,9 @@ export class BullModule { global: true, module: BullModule, imports, - providers, + providers: asyncSharedBullConfig.extraProviders + ? [...providers, ...asyncSharedBullConfig.extraProviders] + : providers, exports: providers, }; } diff --git a/packages/bull/lib/interfaces/shared-bull-config.interface.ts b/packages/bull/lib/interfaces/shared-bull-config.interface.ts index 90292a188..cf7f1d64b 100644 --- a/packages/bull/lib/interfaces/shared-bull-config.interface.ts +++ b/packages/bull/lib/interfaces/shared-bull-config.interface.ts @@ -1,5 +1,9 @@ -import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common'; -import * as Bull from 'bull'; +import { + FactoryProvider, + ModuleMetadata, + Provider, + Type, +} from '@nestjs/common'; import { BullRootModuleOptions } from './bull-module-options.interface'; export interface SharedBullConfigurationFactory { @@ -31,4 +35,9 @@ export interface SharedBullAsyncConfiguration * Optional list of providers to be injected into the context of the Factory function. */ inject?: FactoryProvider['inject']; + + /** + * Extra providers to be registered in the module context. + */ + extraProviders?: Provider[]; } diff --git a/packages/bullmq/lib/bull.module.ts b/packages/bullmq/lib/bull.module.ts index 2c98cacd7..957afa45e 100644 --- a/packages/bullmq/lib/bull.module.ts +++ b/packages/bullmq/lib/bull.module.ts @@ -175,7 +175,9 @@ export class BullModule { global: true, module: BullModule, imports, - providers, + providers: asyncSharedBullConfig.extraProviders + ? [...providers, ...asyncSharedBullConfig.extraProviders] + : providers, exports: providers, }; } diff --git a/packages/bullmq/lib/interfaces/shared-bull-config.interface.ts b/packages/bullmq/lib/interfaces/shared-bull-config.interface.ts index ab193d13a..0c0fd57fd 100644 --- a/packages/bullmq/lib/interfaces/shared-bull-config.interface.ts +++ b/packages/bullmq/lib/interfaces/shared-bull-config.interface.ts @@ -1,4 +1,9 @@ -import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common'; +import { + FactoryProvider, + ModuleMetadata, + Provider, + Type, +} from '@nestjs/common'; import * as Bull from 'bullmq'; export interface BullModuleExtraOptions { @@ -47,4 +52,9 @@ export interface SharedBullAsyncConfiguration * Extra options for the Bull module. */ extraOptions?: BullModuleExtraOptions; + + /** + * Extra providers to be registered in the module context. + */ + extraProviders?: Provider[]; }