in functions_framework_builder/lib/src/valid_json_utils.dart [91:109]
JsonReturnKind _validJsonReturnTypeCore(DartType type) {
if (type is VoidType) {
return JsonReturnKind.isVoid;
}
// Look for a `toJson` function that returns a JSON-able type
if (type is InterfaceType) {
final toJsonMethod = type.element.augmented
.lookUpMethod(name: 'toJson', library: type.element.library);
if (toJsonMethod != null &&
toJsonMethod.parameters.every((element) => element.isOptional)) {
type = toJsonMethod.returnType;
}
}
return _validJsonType(type, true)
? JsonReturnKind.other
: JsonReturnKind.notJson;
}