initialize method
Invoked by the client as a part of initialization.
Resources should usually be added in this function using addResource when possible.
If resources are added, updated, or removed after initialized completes, then the client will be notified of the changes based on their subscription preferences.
Implementation
@override
FutureOr<InitializeResult> initialize(InitializeRequest request) async {
registerRequestHandler(ListResourcesRequest.methodName, _listResources);
registerRequestHandler(
ListResourceTemplatesRequest.methodName,
_listResourceTemplates,
);
registerRequestHandler(ReadResourceRequest.methodName, _readResource);
registerRequestHandler(SubscribeRequest.methodName, _subscribeResource);
registerRequestHandler(UnsubscribeRequest.methodName, _unsubscribeResource);
final result = await super.initialize(request);
(result.capabilities.resources ??= Resources())
..listChanged = true
..subscribe = true;
_resourceListChangedController.stream
.throttle(resourceUpdateThrottleDelay, trailing: true)
.listen(
(_) => sendNotification(
ResourceListChangedNotification.methodName,
ResourceListChangedNotification(),
),
);
return result;
}