getConfig function
Get config from pubspec.yaml
or flutter_native_splash.yaml
Implementation
Map<String, dynamic> getConfig({String? configFile}) {
// if `flutter_native_splash.yaml` exists use it as config file, otherwise use `pubspec.yaml`
String filePath;
if (configFile != null) {
if (File(configFile).existsSync()) {
filePath = configFile;
} else {
print('The config file `$configFile` was not found.');
exit(1);
}
} else if (File('flutter_native_splash.yaml').existsSync()) {
filePath = 'flutter_native_splash.yaml';
} else {
filePath = 'pubspec.yaml';
}
final Map yamlMap = loadYaml(File(filePath).readAsStringSync());
if (yamlMap['flutter_native_splash'] is! Map) {
throw Exception('Your `$filePath` file does not contain a '
'`flutter_native_splash` section.');
}
// yamlMap has the type YamlMap, which has several unwanted side effects
final config = <String, dynamic>{};
for (MapEntry<dynamic, dynamic> entry
in yamlMap['flutter_native_splash'].entries) {
if (entry.value is YamlList) {
var list = <String>[];
for (var value in (entry.value as YamlList)) {
if (value is String) {
list.add(value);
}
}
config[entry.key] = list;
} else {
config[entry.key] = entry.value;
}
}
return config;
}