Módulo de Banderas de Función
El Módulo de Banderas de Función proporciona acceso a las banderas de función (configuraciones) que controlan el comportamiento y la apariencia de la aplicación. Las banderas de función permiten una configuración dinámica sin necesidad de cambios de código o redepliegue.
Accediendo al Módulo
El Módulo de Banderas de Función se puede acceder a través de la instancia GamanzaEngageWebClientSDK:
const sdk = GamanzaEngageWebClientSDK.getInstance();
const featureFlags = sdk.FeatureFlags;
Métodos
getFeatureFlagValue
Devuelve el valor de una bandera de función específica identificada por su clave.
getFeatureFlagValue(featureFlagKey)
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| featureFlagKey | string | El identificador único de la bandera de función |
Devuelve
Promise<T | null>: Una promesa que se resuelve con el valor de la bandera de función con el tipo especificado, o null si no se encuentra la bandera de función.
Ejemplo
// Obtener una bandera de función booleana
const isFeatureEnabled = await sdk.FeatureFlags.getFeatureFlagValue('my-feature-enabled');
// Obtener una bandera de función de cadena
const featureConfig = await sdk.FeatureFlags.getFeatureFlagValue('feature-config');
// Obtener una bandera de función de objeto complejo
const featureSettings = await sdk.FeatureFlags.getFeatureFlagValue('feature-settings');
// featureSettings podría contener: { enabled: true, maxAttempts: 3, displayName: "Nombre de la función" }
getFeatureFlags (Obsoleto)
Devuelve todas las banderas de función disponibles para la instancia actual.
getFeatureFlags()
Nota: Este método está obsoleto. Por favor, use
getFeatureFlagValueen su lugar.
Devuelve
Promise<Array>: Una promesa que se resuelve con un array de todas las banderas de función disponibles.
Ejemplo
// Obtener todas las banderas de función (obsoleto)
const allFlags = await sdk.FeatureFlags.getFeatureFlags();
Interfaces
FeatureFlag
Representa una bandera de función con sus metadatos y valor.
El objeto FeatureFlag tiene la siguiente estructura:
| Propiedad | Tipo | Descripción |
|---|---|---|
| key | string | Identificador único de la bandera de función |
| scope | string | Ámbito de la bandera de función (por ejemplo, "global", "usuario", etc.) |
| description | string | Descripción detallada de lo que controla la bandera de función |
| displayName | string | Nombre legible por humanos para el indicador de función |
| oculto | booleano | Indica si el indicador de función debe ocultarse de las interfaces de usuario |
| estático | booleano | Indica si el valor del indicador de función es estático (inmutable) |
| tipo | cadena de caracteres | Tipo de datos del valor del indicador de función (por ejemplo, "booleano", "cadena de caracteres", "objeto") |
| valor | cualquiera | El valor actual del indicador de función |
| predeterminado | cualquiera | El valor predeterminado del indicador de función si no se establece ningún valor |
Comportamiento de almacenamiento en caché
El Módulo de Indicadores de Función implementa el almacenamiento en caché para mejorar el rendimiento:
- Los valores de los indicadores de función se almacenan en caché en IndexedDB durante 30 minutos
- Al solicitar el valor de un indicador de función específico, el módulo primero verifica la caché
- Si el valor no está en la caché, se obtendrá del servidor y luego se almacenará en caché
- La caché se borra automáticamente cuando se cierra la sesión del SDK
Manejo de errores
Si no se encuentra un indicador de función, el método getFeatureFlagValue devuelve null. Tu aplicación debe manejar este caso apropiadamente, generalmente por medio de un comportamiento predeterminado.