mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +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.
30 lines
617 B
TypeScript
30 lines
617 B
TypeScript
export enum PayloadType {
|
|
STRING = 'string',
|
|
JSON = 'json',
|
|
CSV = 'csv',
|
|
}
|
|
|
|
export interface Payload {
|
|
type: PayloadType;
|
|
value: string;
|
|
}
|
|
|
|
export interface Variant {
|
|
name: string;
|
|
enabled: boolean;
|
|
payload?: Payload;
|
|
}
|
|
|
|
export const getVariantValue = <T = string>(
|
|
variant: Variant | undefined,
|
|
): T | undefined => {
|
|
if (variant?.enabled) {
|
|
if (!variant.payload) return variant.name as T;
|
|
if (variant.payload.type === PayloadType.JSON) {
|
|
return JSON.parse(variant.payload.value) as T;
|
|
}
|
|
|
|
return variant.payload.value as T;
|
|
}
|
|
};
|