sanitizeXrayJson function

dynamic sanitizeXrayJson(
  1. dynamic params
)

Implementation

dynamic sanitizeXrayJson(dynamic params) {
  if (params is XrayJsonModel) {
    return sanitizeXrayJson(params.toJson());
  }
  if (params is Map) {
    final source = Map<String, dynamic>.fromEntries(
      params.entries
          .map((entry) => MapEntry(entry.key.toString(), entry.value)),
    );
    _normalizeStreamSettingsAliases(source);
    source.remove('allowInsecure');

    final map = <String, dynamic>{};
    source.forEach((key, value) {
      final sanitized = sanitizeXrayJson(value);
      if (sanitized != null) {
        map[key] = sanitized;
      }
    });
    return map.isEmpty ? null : map;
  }
  if (params is Iterable) {
    final list = <dynamic>[];
    for (final value in params) {
      final sanitized = sanitizeXrayJson(value);
      if (sanitized != null) {
        list.add(sanitized);
      }
    }
    return list.isEmpty ? null : list;
  }
  return params;
}