1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-18 13:48:58 +02:00

feat: dependent features client api

This commit is contained in:
kwasniew 2023-09-19 14:57:27 +02:00
parent 7717a90bfc
commit 59b29b8dfa
No known key found for this signature in database
GPG Key ID: 43A7CBC24C119560
5 changed files with 7 additions and 4 deletions

View File

@ -206,7 +206,9 @@ export default class FeatureToggleClientStore
feature.dependencies.push({ feature.dependencies.push({
feature: r.parent, feature: r.parent,
enabled: r.parent_enabled, enabled: r.parent_enabled,
variants: r.parent_variants, ...(r.parent_enabled
? { variants: r.parent_variants }
: {}),
}); });
} }
feature.impressionData = r.impression_data; feature.impressionData = r.impression_data;

View File

@ -9,6 +9,7 @@ import { featureStrategySchema } from './feature-strategy-schema';
import { clientFeatureSchema } from './client-feature-schema'; import { clientFeatureSchema } from './client-feature-schema';
import { variantSchema } from './variant-schema'; import { variantSchema } from './variant-schema';
import { strategyVariantSchema } from './strategy-variant-schema'; import { strategyVariantSchema } from './strategy-variant-schema';
import { dependentFeatureSchema } from './dependent-feature-schema';
export const clientFeaturesSchema = { export const clientFeaturesSchema = {
$id: '#/components/schemas/clientFeaturesSchema', $id: '#/components/schemas/clientFeaturesSchema',
@ -57,6 +58,7 @@ export const clientFeaturesSchema = {
featureStrategySchema, featureStrategySchema,
strategyVariantSchema, strategyVariantSchema,
variantSchema, variantSchema,
dependentFeatureSchema,
}, },
}, },
} as const; } as const;

View File

@ -76,7 +76,7 @@ export interface IFeatureToggleClient {
variants: IVariant[]; variants: IVariant[];
enabled: boolean; enabled: boolean;
strategies: Omit<IStrategyConfig, 'disabled'>[]; strategies: Omit<IStrategyConfig, 'disabled'>[];
dependencies: IDependency[]; dependencies?: IDependency[];
impressionData?: boolean; impressionData?: boolean;
lastSeenAt?: Date; lastSeenAt?: Date;
createdAt?: Date; createdAt?: Date;

View File

@ -17,7 +17,7 @@ export interface FeatureConfigurationClient {
stale: boolean; stale: boolean;
strategies: IStrategyConfig[]; strategies: IStrategyConfig[];
variants: IVariant[]; variants: IVariant[];
dependencies: IDependency[]; dependencies?: IDependency[];
} }
export interface IFeatureStrategiesStore export interface IFeatureStrategiesStore
extends Store<IFeatureStrategy, string> { extends Store<IFeatureStrategy, string> {

View File

@ -157,7 +157,6 @@ test('returns dependencies', async () => {
{ {
feature: 'featureZ', feature: 'featureZ',
enabled: false, enabled: false,
variants: [],
}, },
], ],
}); });