LCOV - code coverage report
Current view: top level - lib/src - agattp_utils.dart (source / functions) Coverage Total Hit
Test: agattp Lines: 100.0 % 26 26
Test Date: 2025-01-28 00:11:13 Functions: - 0 0

            Line data    Source code
       1              : ///
       2              : ///
       3              : ///
       4              : enum HeaderKeyCase {
       5              :   lowercase,
       6              :   capitalize,
       7              :   preserve;
       8              : }
       9              : 
      10              : ///
      11              : ///
      12              : ///
      13              : class Utils {
      14              :   ///
      15              :   ///
      16              :   ///
      17            3 :   static String capitalizeHeaderKey(
      18              :     String key, {
      19              :     String separator = '-',
      20              :   }) {
      21            3 :     final List<String> parts = key.split(separator);
      22              : 
      23            9 :     for (int i = 0; i < parts.length; i++) {
      24            6 :       if (parts[i].isEmpty) {
      25              :         continue;
      26              :       }
      27              : 
      28            3 :       parts[i] =
      29           21 :           parts[i][0].toUpperCase() + parts[i].substring(1).toLowerCase();
      30              :     }
      31              : 
      32            3 :     return parts.join(separator);
      33              :   }
      34              : 
      35              :   ///
      36              :   ///
      37              :   ///
      38            2 :   static String headerKey(HeaderKeyCase keyCase, String key) {
      39              :     switch (keyCase) {
      40            2 :       case HeaderKeyCase.lowercase:
      41            1 :         return key.toLowerCase();
      42            2 :       case HeaderKeyCase.capitalize:
      43            2 :         return capitalizeHeaderKey(key);
      44            1 :       case HeaderKeyCase.preserve:
      45              :         return key;
      46              :     }
      47              :   }
      48              : 
      49              :   ///
      50              :   ///
      51              :   ///
      52            2 :   static Map<String, String> headers(
      53              :     Map<String, String> headers,
      54              :     HeaderKeyCase keyCase,
      55              :   ) {
      56            2 :     final Map<String, String> newHeaders = <String, String>{};
      57              : 
      58            4 :     for (final MapEntry<String, String> entry in headers.entries) {
      59            8 :       newHeaders[headerKey(keyCase, entry.key)] = entry.value;
      60              :     }
      61              : 
      62              :     return newHeaders;
      63              :   }
      64              : 
      65              :   ///
      66              :   ///
      67              :   ///
      68            2 :   static String removeQuotes(String value) =>
      69            4 :       value.replaceAll(RegExp(r'^"|"$'), '');
      70              : 
      71              :   ///
      72              :   ///
      73              :   ///
      74            2 :   static List<String> splitFirst(String value, String separator) {
      75            2 :     final int index = value.indexOf(separator);
      76              : 
      77            4 :     if (index == -1) {
      78            1 :       return <String>[value];
      79              :     }
      80              : 
      81            2 :     return <String>[
      82            2 :       value.substring(0, index),
      83            6 :       value.substring(index + separator.length),
      84              :     ];
      85              :   }
      86              : }
        

Generated by: LCOV version 2.0-1