in functions_framework_builder/lib/src/valid_json_utils.dart [53:76]
JsonParamInfo? validJsonParamType(DartType type) {
// Look for a `fromJson` factory that takes a JSON-able type
if (type is InterfaceType) {
final fromJsonCtor = type.constructors.singleWhereOrNull(
(element) => element.name == fromJsonFactoryName,
);
if (fromJsonCtor != null) {
final requiredParams = fromJsonCtor.parameters
.where((element) => element.isRequiredPositional)
.toList();
if (requiredParams.length == 1) {
final paramType = requiredParams.single.type;
if (_validJsonType(paramType, false)) {
return (jsonType: paramType, paramType: type);
}
}
}
}
if (_validJsonType(type, false)) {
return (jsonType: type, paramType: null);
}
return null;
}