🎨 Refactor code style for consistency and readability in feature flag composable

This commit is contained in:
2026-01-28 22:53:48 +00:00
parent 5151846a88
commit a736519d76

View File

@@ -15,7 +15,11 @@
import { ref, computed, readonly } from 'vue'; import { ref, computed, readonly } from 'vue';
import { useAuth } from './useAuth.js'; import { useAuth } from './useAuth.js';
import { FEATURE_FLAGS, getFlag, getFlagPermission } from '../config/feature-flags.js'; import {
FEATURE_FLAGS,
getFlag,
getFlagPermission
} from '../config/feature-flags.js';
// Local storage key for overrides // Local storage key for overrides
const LOCAL_OVERRIDES_KEY = 'feature_flag_overrides'; const LOCAL_OVERRIDES_KEY = 'feature_flag_overrides';
@@ -68,7 +72,7 @@ export function useFeatureFlags() {
* Checks in order: local override, permission requirement, default value * Checks in order: local override, permission requirement, default value
*/ */
const isEnabled = computed(() => { const isEnabled = computed(() => {
return (flagName) => { return flagName => {
// Check local override first // Check local override first
if (flagName in localOverrides.value) { if (flagName in localOverrides.value) {
return localOverrides.value[flagName]; return localOverrides.value[flagName];
@@ -100,15 +104,16 @@ export function useFeatureFlags() {
* Toggle a flag override (dev mode only) * Toggle a flag override (dev mode only)
* Only works in development mode * Only works in development mode
*/ */
const toggle = (flagName) => { const toggle = flagName => {
if (process.env.NODE_ENV !== 'development') { if (process.env.NODE_ENV !== 'development') {
console.warn('Feature flag overrides only available in development mode'); console.warn('Feature flag overrides only available in development mode');
return false; return false;
} }
const current = localOverrides.value[flagName] !== undefined const current =
localOverrides.value[flagName] !== undefined
? localOverrides.value[flagName] ? localOverrides.value[flagName]
: getFlag(flagName)?.enabled ?? false; : (getFlag(flagName)?.enabled ?? false);
localOverrides.value[flagName] = !current; localOverrides.value[flagName] = !current;
saveLocalOverrides(localOverrides.value); saveLocalOverrides(localOverrides.value);
@@ -119,7 +124,7 @@ export function useFeatureFlags() {
/** /**
* Reset a specific flag override * Reset a specific flag override
*/ */
const reset = (flagName) => { const reset = flagName => {
if (process.env.NODE_ENV !== 'development') { if (process.env.NODE_ENV !== 'development') {
console.warn('Feature flag overrides only available in development mode'); console.warn('Feature flag overrides only available in development mode');
return; return;
@@ -153,7 +158,8 @@ export function useFeatureFlags() {
hasOverride: flag.name in localOverrides.value, hasOverride: flag.name in localOverrides.value,
override: localOverrides.value[flag.name], override: localOverrides.value[flag.name],
requiresPermission: !!flag.requiredPermission, requiresPermission: !!flag.requiredPermission,
hasPermission: !flag.requiredPermission || hasPermission(flag.requiredPermission) hasPermission:
!flag.requiredPermission || hasPermission(flag.requiredPermission)
})); }));
}; };
}); });
@@ -162,7 +168,7 @@ export function useFeatureFlags() {
* Set flags from backend response * Set flags from backend response
* Called after fetching flags from backend * Called after fetching flags from backend
*/ */
const setBackendFlags = (flags) => { const setBackendFlags = flags => {
backendFlags.value = flags; backendFlags.value = flags;
}; };