loadConfig function

ConfigData loadConfig(
  1. Directory directory
)

Implementation

ConfigData loadConfig(Directory directory) {
  final configFile = File(join(directory.path, kConfigFileName));
  final pubspecFile = File(join(directory.path, 'pubspec.yaml'));

  if (!pubspecFile.existsSync()) {
    throw StateError('pubspec.yaml not found');
  }

  final pubspecYaml = loadYaml(pubspecFile.readAsStringSync());
  YamlMap? configYaml;

  if (configFile.existsSync()) {
    configYaml = loadYaml(configFile.readAsStringSync()) as YamlMap?;
  }

  final mergedYaml = mergeMaps(pubspecYaml as Map, (configYaml as Map?) ?? {});
  final configData = ConfigData.fromYaml(
    loadYaml(jsonEncode(mergedYaml)) as YamlMap,
  );

  return configData;
}