mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-01 00:08:27 +01:00
4167a60588
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome to the frontend as well. ![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65) Added a few `biome-ignore` to speed up the process but we may want to check and fix them in the future.
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import {
|
|
IStrategy,
|
|
IFeatureStrategy,
|
|
IFeatureStrategyParameters,
|
|
IStrategyParameter,
|
|
} from 'interfaces/strategy';
|
|
|
|
// Create a new feature strategy with default values from a strategy definition.
|
|
export const createFeatureStrategy = (
|
|
featureId: string,
|
|
strategyDefinition: IStrategy,
|
|
): Omit<IFeatureStrategy, 'id'> => {
|
|
const parameters: IFeatureStrategyParameters = {};
|
|
|
|
strategyDefinition.parameters.forEach((parameter: IStrategyParameter) => {
|
|
parameters[parameter.name] = createFeatureStrategyParameterValue(
|
|
featureId,
|
|
parameter,
|
|
);
|
|
});
|
|
|
|
return {
|
|
name: strategyDefinition.name,
|
|
constraints: [],
|
|
parameters,
|
|
};
|
|
};
|
|
|
|
// Create default feature strategy parameter values from a strategy definition.
|
|
const createFeatureStrategyParameterValue = (
|
|
featureId: string,
|
|
parameter: IStrategyParameter,
|
|
): string => {
|
|
if (
|
|
parameter.name === 'rollout' ||
|
|
parameter.name === 'percentage' ||
|
|
parameter.type === 'percentage'
|
|
) {
|
|
return '50';
|
|
}
|
|
|
|
if (parameter.name === 'stickiness') {
|
|
return '';
|
|
}
|
|
|
|
if (parameter.name === 'groupId') {
|
|
return featureId;
|
|
}
|
|
|
|
if (parameter.type === 'boolean') {
|
|
return 'false';
|
|
}
|
|
|
|
return '';
|
|
};
|