toMap method

Map<String, dynamic> toMap()

Convertit le JSObject en Map Dart pour un acces facile aux propertes Cela evite les multiples appels a getProperty() dans les tests

Implementation

Map<String, dynamic> toMap() {
  final result = <String, dynamic>{};

  for (final key in _properties.keys) {
    final value = getProperty(key);

    // Convertir les valeurs JSValue en types Dart natifs
    if (value.isNull || value.isUndefined) {
      result[key] = null;
    } else if (value.isBoolean) {
      result[key] = value.toBoolean();
    } else if (value.isNumber) {
      final num = value.toNumber();
      result[key] = num == num.truncateToDouble() ? num.toInt() : num;
    } else if (value.isString) {
      result[key] = value.toString();
    } else if (value is JSArray) {
      result[key] = value.toList();
    } else if (value is JSObject) {
      result[key] = value.toMap();
    } else {
      // For les autres types (fonctions, symboles, etc.), return la valeur JS
      result[key] = value;
    }
  }

  return result;
}