loadPackagesConfig function
Loads plugin configuration from the environment cwd's
.fah/packages.yaml. Returns a map of plugin name -> config.
Implementation
Future<Map<String, dynamic>> loadPackagesConfig(ExecutionEnv env) async {
final String source;
switch (await env.readTextFile('${env.cwd}/.fah/packages.yaml')) {
case Ok(:final value):
source = value;
case Err(:final error) when error.code == FileErrorCode.notFound:
return const {};
case Err(:final error):
throw ConfigException('failed to parse .fah/packages.yaml: $error');
}
try {
final doc = yaml.loadYaml(source);
if (doc is! Map) return const {};
return Map<String, dynamic>.from(
doc,
).map((name, value) => MapEntry(name, _plainYaml(value)));
} on Object catch (error) {
throw ConfigException('failed to parse .fah/packages.yaml: $error');
}
}