fromElement static method
Implementation
static ClientLifecycleComponentMethod? fromElement(MethodElement object) {
final returnTypeAlias = object.returnType.alias?.element.name;
String returnType;
if (returnTypeAlias != null && aliasReturnTypes.contains(returnTypeAlias)) {
returnType = returnTypeAlias;
} else if (object.returnType case final InterfaceType type
when type.isAnyFuture) {
final typeArg = type.typeArguments.first;
final resolveReturnType = typeArg.getDisplayString();
returnType = switch (typeArg) {
InterfaceType() => typeArg.alias?.element.name ?? resolveReturnType,
_ => resolveReturnType,
};
if (returnType.startsWith((ExceptionCatcherResult).name)) {
return null;
}
} else {
returnType = object.returnType.getDisplayString();
if (returnType.startsWith((ExceptionCatcherResult).name)) {
return null;
}
}
if (!returnTypes.contains(returnType)) {
return null;
}
final params = object.formalParameters
.map(ClientParam.fromElement)
.whereType<ClientParam>()
.toList();
return ClientLifecycleComponentMethod(
parameters: params,
returnType: returnType,
);
}