Config.fromMap constructor
Config.fromMap(
- PlatformValueProvider valueProvider,
- Map config,
- Map<
String, dynamic> args
Implementation
factory Config.fromMap(PlatformValueProvider valueProvider,
Map<dynamic, dynamic> config, Map<String, dynamic> args) {
final String? devExtension = config[ConfigFieldType.DEV_EXTENSION];
final Map<dynamic, dynamic> configFields = config[ConfigFieldType.FIELDS];
final Map<dynamic, dynamic> extensions =
config[ConfigFieldType.EXTENSIONS] ?? {};
Map<dynamic, dynamic> extension = {};
String? extensionName;
if (devExtension != null && args[devExtension]) {
extensionName = devExtension;
}
extensionName ??= args[ConfigFieldType.CONFIG_EXTENSION];
if (extensionName != null) {
if (!extensions.containsKey(extensionName)) {
throw ExtensionNotFound(extensionName);
}
extension = extensions[extensionName] ?? {};
}
Map<dynamic, dynamic> extensionFields =
extension[ConfigFieldType.FIELDS] ?? {};
final Iterable<FieldConfig> fields = configFields.keys.map((key) =>
FieldConfig(
valueProvider,
key,
config[ConfigFieldType.FIELDS][key] ?? {},
extensionFields[key] ?? {},
args[key]));
return Config(config, args, fields, extension);
}