saleor-dashboard/src/hooks/useFlags/env/helpers.ts
poulch d5ed6fb202
Feature flags (#2961)
* [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
2023-01-16 14:55:38 +01:00

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 {};
};