handleGetVariant method

Future<Map<String, dynamic>> handleGetVariant(
  1. MethodCall call
)

Implementation

Future<Map<String, dynamic>> handleGetVariant(MethodCall call) async {
  Map<Object?, Object?> args = call.arguments as Map<Object?, Object?>;
  String flagName = args['flagName'] as String;
  Map<Object?, Object?> fallbackMap = args['fallback'] as Map<Object?, Object?>? ?? {};

  JSAny? fallbackJs = safeJsify({
    'key': fallbackMap['key'],
    'value': fallbackMap['value'],
  });

  try {
    JSPromise promise = flags_get_variant(flagName, fallbackJs);
    JSAny? jsResult = await promise.toDart;
    return _jsVariantToMap(jsResult, fallbackMap);
  } catch (e) {
    debugPrint('[Mixpanel] getVariant failed with error: $e, returning fallback');
    return _jsVariantToMap(null, fallbackMap);
  }
}