diff --git a/npm/ng-packs/packages/core/src/lib/utils/factory-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/factory-utils.ts index bc6273fa82..c9542f3dba 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/factory-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/factory-utils.ts @@ -7,6 +7,8 @@ import { StaticProvider, Type, } from '@angular/core'; +import { filter, map } from 'rxjs/operators'; +import { ConfigStateService } from '../services/config-state.service'; export class LazyModuleFactory extends NgModuleFactory { get moduleType(): Type { @@ -29,3 +31,11 @@ export class LazyModuleFactory extends NgModuleFactory { return factory.create(injector); } } + +export function featuresFactory( + configState: ConfigStateService, + featureKeys: string[], + mapFn: (features) => any = features => features, +) { + return configState.getFeatures$(featureKeys).pipe(filter(Boolean), map(mapFn)); +}