Browse Source

Merge pull request #8212 from abpframework/feat/get-features

Added getFeatures method to ConfigStateService
pull/8218/head
Levent Arman Özak 5 years ago
committed by GitHub
parent
commit
53eddf1d0e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      npm/ng-packs/packages/core/src/lib/services/config-state.service.ts
  2. 10
      npm/ng-packs/packages/core/src/lib/utils/factory-utils.ts

15
npm/ng-packs/packages/core/src/lib/services/config-state.service.ts

@ -72,6 +72,21 @@ export class ConfigStateService {
return this.store.sliceState(state => state.features?.values?.[key]);
}
getFeatures(keys: string[]) {
const { features } = this.store.state;
if (!features) return;
return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
}
getFeatures$(keys: string[]) {
return this.store.sliceState(({ features }) => {
if (!features?.values) return;
return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
});
}
getSetting(key: string) {
return this.store.state.setting?.values?.[key];
}

10
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<T> extends NgModuleFactory<T> {
get moduleType(): Type<T> {
@ -29,3 +31,11 @@ export class LazyModuleFactory<T> extends NgModuleFactory<T> {
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));
}

Loading…
Cancel
Save