in functions_framework_builder/lib/src/valid_json_utils.dart [20:49]
bool _validJsonType(DartType type, bool allowComplexMembers) {
bool validCollectionMember(DartType memberType) {
if (allowComplexMembers) {
return memberType is DynamicType ||
memberType.isDartCoreObject ||
_validJsonReturnTypeCore(memberType) == JsonReturnKind.other;
}
return memberType is DynamicType || memberType.isDartCoreObject;
}
if (type.isDartCoreBool ||
type.isDartCoreNum ||
type.isDartCoreDouble ||
type.isDartCoreInt ||
type.isDartCoreString) {
return true;
}
if (type is InterfaceType) {
if (type.isDartCoreList) {
final arg = type.typeArguments.single;
return validCollectionMember(arg);
} else if (type.isDartCoreMap) {
final keyArg = type.typeArguments[0];
final valueArg = type.typeArguments[1];
return keyArg.isDartCoreString && validCollectionMember(valueArg);
}
}
return false;
}