in lib/src/config_provider/spec_utils.dart [577:642]
bool declarationConfigValidator(List<String> name, dynamic value) {
var _result = true;
if (value is YamlMap) {
for (final key in value.keys) {
if (key == strings.include || key == strings.exclude) {
if (!checkType<YamlList>([...name, key as String], value[key])) {
_result = false;
}
} else if (key == strings.rename) {
if (!checkType<YamlMap>([...name, key as String], value[key])) {
_result = false;
} else {
for (final subkey in (value[key] as YamlMap).keys) {
if (!checkType<String>(
[...name, key, subkey as String], value[key][subkey])) {
_result = false;
}
}
}
} else if (key == strings.memberRename) {
if (!checkType<YamlMap>([...name, key as String], value[key])) {
_result = false;
} else {
for (final declNameKey in (value[key] as YamlMap).keys) {
if (!checkType<YamlMap>([...name, key, declNameKey as String],
value[key][declNameKey])) {
_result = false;
} else {
for (final memberNameKey
in ((value[key] as YamlMap)[declNameKey] as YamlMap).keys) {
if (!checkType<String>([
...name,
key,
declNameKey,
memberNameKey as String,
], value[key][declNameKey][memberNameKey])) {
_result = false;
}
}
}
}
}
} else if (key == strings.symbolAddress) {
if (!checkType<YamlMap>([...name, key as String], value[key])) {
_result = false;
} else {
for (final subkey in (value[key] as YamlMap).keys) {
if (subkey == strings.include || subkey == strings.exclude) {
if (!checkType<YamlList>(
[...name, key, subkey as String], value[key][subkey])) {
_result = false;
}
} else {
_logger.severe("Unknown key '$subkey' in '$name -> $key'.");
_result = false;
}
}
}
}
}
} else {
_logger.severe("Expected value '$name' to be a Map.");
_result = false;
}
return _result;
}