readResource method
Reads the resource at request.uri.
Throws an ArgumentError if it does not exist (this gets translated into a generic JSON RPC2 error response).
Implementation
@mustCallSuper
FutureOr<ReadResourceResult> readResource(ReadResourceRequest request) async {
final impl = _resourceImpls[request.uri];
if (impl == null) {
// Check if it matches any resource template.
for (var descriptor in _resourceTemplates) {
final response = await descriptor.handler(request);
if (response != null) return response;
}
}
final response = await impl?.call(request);
if (response == null) {
throw ArgumentError.value(request.uri, 'uri', 'Resource not found');
}
return response;
}