From 2d8c2e76c70b6f60f082f398644f33a995d43880 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 27 Jul 2022 10:51:03 +0300 Subject: [PATCH] make config service not required --- src/lib/common-ui.module.ts | 28 ++++++++++++++++++------ src/lib/utils/types/common-ui-options.ts | 2 +- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/lib/common-ui.module.ts b/src/lib/common-ui.module.ts index 5e0e794..758c263 100644 --- a/src/lib/common-ui.module.ts +++ b/src/lib/common-ui.module.ts @@ -95,19 +95,33 @@ export class CommonUiModule extends ModuleWithOptions { options.existingUserPreferenceService, ); + const configServiceProviders = this._getConfigServiceProviders(options.configServiceFactory, options.configService); + return { ngModule: CommonUiModule, - providers: [ - userPreferenceService, + providers: [userPreferenceService, configServiceProviders], + }; + } + + private static _getConfigServiceProviders(configServiceFactory: () => unknown, configService: unknown) { + if (configService) { + return [ { - provide: options.configService, - useFactory: options.configServiceFactory, + provide: configService, + useFactory: configServiceFactory, }, { provide: BaseConfigService, - useExisting: options.configService, + useExisting: configService, }, - ], - }; + ]; + } + + return [ + { + provide: BaseConfigService, + useFactory: configServiceFactory, + }, + ]; } } diff --git a/src/lib/utils/types/common-ui-options.ts b/src/lib/utils/types/common-ui-options.ts index 5289e4a..cf96878 100644 --- a/src/lib/utils/types/common-ui-options.ts +++ b/src/lib/utils/types/common-ui-options.ts @@ -8,6 +8,6 @@ export interface CommonUiOptions< AppConfig extends BaseAppConfig, > { existingUserPreferenceService?: Type; - configService: Type; + configService?: Type; configServiceFactory: () => Config; }