toMap static method

DynamicMap toMap(
  1. DynamicMap value
)

Executes the process of converting data to be stored on the server.

The data to be saved to the server is passed to value.

The converted data is passed to the return value.

サーバーへ保存するデータを変換する処理を実行します。

valueにサーバーへ保存するデータを渡します。

戻り値に変換後のデータが渡されます。

Implementation

static DynamicMap toMap(DynamicMap value) {
  final res = <String, dynamic>{};
  for (final tmp in value.entries) {
    final key = tmp.key;
    final val = tmp.value;
    if (val is List) {
      final vRes = <dynamic>[];
      for (final v in val) {
        final conveter = _converters.firstWhereOrNull((e) => e.check(v));
        if (conveter != null) {
          vRes.add(conveter.toJson(v));
        } else {
          vRes.add(v);
        }
      }
      res[key] = vRes;
    } else if (val is Set) {
      final vRes = <dynamic>{};
      for (final v in val) {
        final conveter = _converters.firstWhereOrNull((e) => e.check(v));
        if (conveter != null) {
          vRes.add(conveter.toJson(v));
        } else {
          vRes.add(v);
        }
      }
      res[key] = vRes;
    } else if (val is Map) {
      final vRes = <String, dynamic>{};
      for (final v in val.entries) {
        final conveter =
            _converters.firstWhereOrNull((e) => e.check(v.value));
        if (conveter != null) {
          vRes[v.key] = conveter.toJson(v.value);
        } else {
          vRes[v.key] = v.value;
        }
      }
      res[key] = vRes;
    } else {
      final conveter = _converters.firstWhereOrNull((e) => e.check(val));
      if (conveter != null) {
        res[key] = conveter.toJson(val);
      } else {
        res[key] = val;
      }
    }
  }
  return Map.unmodifiable(res);
}