mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 10:13:31 +00:00
[EC-473] Add feature flags to common code (#3324)
This commit is contained in:
@@ -5,7 +5,7 @@ import { AuthGuard } from "@bitwarden/angular/guards/auth.guard";
|
||||
import { LockGuard } from "@bitwarden/angular/guards/lock.guard";
|
||||
import { UnauthGuard } from "@bitwarden/angular/guards/unauth.guard";
|
||||
|
||||
import { flagEnabled, FlagName } from "../utils/flags";
|
||||
import { flagEnabled, Flags } from "../utils/flags";
|
||||
|
||||
import { AcceptEmergencyComponent } from "./accounts/accept-emergency.component";
|
||||
import { AcceptOrganizationComponent } from "./accounts/accept-organization.component";
|
||||
@@ -261,7 +261,7 @@ const routes: Routes = [
|
||||
})
|
||||
export class OssRoutingModule {}
|
||||
|
||||
export function buildFlaggedRoute(flagName: FlagName, route: Route): Route {
|
||||
export function buildFlaggedRoute(flagName: keyof Flags, route: Route): Route {
|
||||
return flagEnabled(flagName)
|
||||
? route
|
||||
: {
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
import {
|
||||
flagEnabled as baseFlagEnabled,
|
||||
devFlagEnabled as baseDevFlagEnabled,
|
||||
devFlagValue as baseDevFlagValue,
|
||||
SharedFlags,
|
||||
SharedDevFlags,
|
||||
} from "@bitwarden/common/misc/flags";
|
||||
|
||||
// required to avoid linting errors when there are no flags
|
||||
/* eslint-disable-next-line @typescript-eslint/ban-types */
|
||||
export type Flags = {
|
||||
showTrial?: boolean;
|
||||
};
|
||||
} & SharedFlags;
|
||||
|
||||
export type FlagName = keyof Flags;
|
||||
// required to avoid linting errors when there are no flags
|
||||
/* eslint-disable-next-line @typescript-eslint/ban-types */
|
||||
export type DevFlags = {} & SharedDevFlags;
|
||||
|
||||
export function flagEnabled(flag: FlagName): boolean {
|
||||
return flags()[flag] == null || flags()[flag];
|
||||
export function flagEnabled(flag: keyof Flags): boolean {
|
||||
return baseFlagEnabled<Flags>(flag);
|
||||
}
|
||||
|
||||
function flags(): Flags {
|
||||
const envFlags = process.env.FLAGS as string | Flags;
|
||||
|
||||
if (typeof envFlags === "string") {
|
||||
return JSON.parse(envFlags) as Flags;
|
||||
} else {
|
||||
return envFlags as Flags;
|
||||
}
|
||||
export function devFlagEnabled(flag: keyof DevFlags) {
|
||||
return baseDevFlagEnabled<DevFlags>(flag);
|
||||
}
|
||||
|
||||
export function devFlagValue(flag: keyof DevFlags) {
|
||||
return baseDevFlagValue(flag);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user