Pular para o conteúdo principal

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

NombreTipoDescripción
featureFlagKeystringEl 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 getFeatureFlagValue en 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:

PropiedadTipoDescripción
keystringIdentificador único de la bandera de función
scopestringÁmbito de la bandera de función (por ejemplo, "global", "usuario", etc.)
descriptionstringDescripción detallada de lo que controla la bandera de función
displayNamestringNombre legible por humanos para el indicador de función
ocultobooleanoIndica si el indicador de función debe ocultarse de las interfaces de usuario
estáticobooleanoIndica si el valor del indicador de función es estático (inmutable)
tipocadena de caracteresTipo de datos del valor del indicador de función (por ejemplo, "booleano", "cadena de caracteres", "objeto")
valorcualquieraEl valor actual del indicador de función
predeterminadocualquieraEl 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.