Files
boc/packages/domain/src/auth/feature-flags.ts
T

51 lines
1.1 KiB
TypeScript
Raw Normal View History

/**
* Feature Flags — enable features without new releases
*
* Pilot 001-010: Control which modules are visible.
*/
export type FeatureFlag =
| 'ENABLE_REPLAY'
| 'ENABLE_DATASET_EXPLORER'
| 'ENABLE_MODEL_TRAINING'
| 'ENABLE_HOTSPOTS'
| 'ENABLE_ECONOMIC_ENGINE'
| 'ENABLE_DEVELOPER_MODE';
export interface FeatureFlags {
readonly flags: Record<FeatureFlag, boolean>;
}
export const DefaultFeatureFlags: FeatureFlags = {
flags: {
ENABLE_REPLAY: false,
ENABLE_DATASET_EXPLORER: true,
ENABLE_MODEL_TRAINING: false,
ENABLE_HOTSPOTS: false,
ENABLE_ECONOMIC_ENGINE: false,
ENABLE_DEVELOPER_MODE: false,
},
};
export function isEnabled(flags: FeatureFlags, flag: FeatureFlag): boolean {
return flags.flags[flag] ?? false;
}
export function enable(flags: FeatureFlags, flag: FeatureFlag): FeatureFlags {
return {
flags: {
...flags.flags,
[flag]: true,
},
};
}
export function disable(flags: FeatureFlags, flag: FeatureFlag): FeatureFlags {
return {
flags: {
...flags.flags,
[flag]: false,
},
};
}