decompressData function

Map<String, dynamic> decompressData(
  1. dynamic data,
  2. bool useCompression, {
  3. String compressDataKey = "Body",
})

Implementation

Map<String, dynamic> decompressData(dynamic data, bool useCompression, {String compressDataKey = "Body"}) {
  if (useCompression) {
    var hexData = data.toString().substring(2);
    // print(hexData);
    final decodedData = hex.decode(hexData);
    // final unzippedData = gzip.decode(decodedData);
    var unzippedData = kIsWeb ? GZipDecoder().decodeBytes(decodedData) : gzip.decode(decodedData);
    unzippedData = unzippedData.where((element) => element != 0).toList();
    // File f = File('tt.json');
    // try {
    //   f.writeAsBytesSync(unzippedData);
    // }catch (e){
    //   print(e);
    // }
    // print(unzippedData);
    final decoded = utf8.decode(unzippedData, allowMalformed: true);
    // print(decoded);
    var decodedFix = decoded.characters.where((p0) => p0 != "\u0000").join();
    // var decodedFix = decoded;
    // decodedFix = decodedFix.replaceAll('', "");
    // print(decodedFix.runtimeType);
    var mapData = jsonDecode(decodedFix);
    // var mapData = decodedFix;
    // print(mapData);
    return mapData;
  } else {
    return data;
  }
}