1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/frontend/src/utils/variants.ts

29 lines
574 B
TypeScript
Raw Normal View History

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?.payload !== undefined) {
if (variant.payload.type === PayloadType.JSON) {
return JSON.parse(variant.payload.value) as T;
}
return variant.payload.value as T;
}
};