readYamlFile static method

Future<Map<String, dynamic>> readYamlFile(
  1. String yamlFile, {
  2. String? group,
  3. String? subGroup,
})

Read JSon file as Map specifically for provided group and subgroup

Implementation

static Future<Map<String, dynamic>> readYamlFile(String yamlFile,
    {String? group, String? subGroup}) async {
  try {
    String fileAsString = await TGFileUtil.readFile(yamlFile);
    final Map? map = loadYaml(fileAsString);

    if (group == null || group.length == 0)
      return map as FutureOr<Map<String, dynamic>>;

    // Group entries
    Map<String, dynamic> groupMap = <String, dynamic>{};
    for (MapEntry<String, dynamic> entry in map![group].entries)
      groupMap[entry.key] = entry.value;

    if (subGroup == null || subGroup.length == 0) return groupMap;

    // Sub Group entries
    Map<String, dynamic> subGroupMap = <String, dynamic>{};
    for (MapEntry<String, dynamic> entry in groupMap[subGroup].entries)
      subGroupMap[entry.key] = entry.value;

    return subGroupMap;
  } catch (e) {
    TGLog.e("Unable to load " + group! + " from file " + yamlFile);
    TGLog.e(e.toString());
  }
  return <String, dynamic>{};
}