
* [Feature Flags] Abstraction over flags provider (#2928) * Remove useFlag hook * [Feature Flags] GraphQL build multiple schemas (#2937) * Build script * Refactor build types script * Remove old codegen.yml * Clean feature flags in script * Refactor schema path * Restore useAuthProvider * Update configuration file * encapsulate details for feature flags provider * Add proper env to flagsmith provider * Remove flagsmith mocks * Vite config define global variables * Render flagmisth provider only when is used * Keep name service agnostic * Test with mocked flagsmith * Use global FLAGS varaible for env flags * Fix type issue with FLAGS * Fix build issue * Remove duplicate translations * Fix typo * Prepare for QA tests * Remove test feature flag
32 lines
856 B
TypeScript
32 lines
856 B
TypeScript
import camelCase from "lodash/camelCase";
|
|
import snakeCase from "lodash/snakeCase";
|
|
|
|
import { ENV_FLAG_PREFIX } from "./const";
|
|
|
|
export const envNameToFlagName = (envName: string) => {
|
|
const name = envName.split(ENV_FLAG_PREFIX)[1];
|
|
return camelCase(name);
|
|
};
|
|
|
|
export const flagNameToEnvName = (flagName: string) =>
|
|
`${ENV_FLAG_PREFIX}${snakeCase(flagName).toUpperCase()}`;
|
|
|
|
/**
|
|
Referencing an virtual constant FLAGS, prepared by Vite. It populates env-based feature flags into client-side, under the virtual property FLAGS,
|
|
Please do not use FLAGS constant directly anywhere.
|
|
*/
|
|
export const readFlagFromEnv = (flagName: string): string | undefined => {
|
|
if (FLAGS) {
|
|
return FLAGS[flagName];
|
|
}
|
|
|
|
return undefined;
|
|
};
|
|
|
|
export const readAllFlagsFromEnv = (): Record<string, string> => {
|
|
if (FLAGS) {
|
|
return FLAGS;
|
|
}
|
|
|
|
return {};
|
|
};
|