--- displayed_sidebar: servicesSidebar --- import ParameterTypes from "@site/src/components/ParameterTypes" # FlagRouter ## Implements - [IFlagRouter](../interfaces/IFlagRouter.mdx) ## Constructors ### constructor `**new FlagRouter**(flags)` #### Parameters `", "description": "", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> ## Properties ## Methods ### isFeatureEnabled `**isFeatureEnabled**(flag): boolean` Check if a feature flag is enabled. There are two ways of using this method: 1. `isFeatureEnabled("myFeatureFlag")` 2. `isFeatureEnabled({ myNestedFeatureFlag: "someNestedFlag" })` We use 1. for top-level feature flags and 2. for nested feature flags. Almost all flags are top-level. An example of a nested flag is workflows. To use it, you would do: `isFeatureEnabled({ workflows: Workflows.CreateCart })` #### Parameters `", "description": "The flag to check", "optional": false, "defaultValue": "", "expandable": false, "children": [] } ]} /> #### Returns `boolean` ___ ### listFlags `**listFlags**(): [FeatureFlagsResponse](../types/FeatureFlagsResponse.mdx)` #### Returns [FeatureFlagsResponse](../types/FeatureFlagsResponse.mdx) ___ ### setFlag `**setFlag**(key, value): void` Sets a feature flag. Flags take two shapes: `setFlag("myFeatureFlag", true)` `setFlag("myFeatureFlag", { nestedFlag: true })` These shapes are used for top-level and nested flags respectively, as explained in isFeatureEnabled. #### Parameters #### Returns `void`