dispatchFetchExchange function
Future<FetchResponseView>
dispatchFetchExchange(
- Engine engine,
- FetchRequestView request, {
- required RoutedNodeRuntimeInfo runtime,
- Uri? baseUri,
Dispatches a Fetch-style request through Routed's buffered portable path.
Implementation
Future<FetchResponseView> dispatchFetchExchange(
Engine engine,
FetchRequestView request, {
required RoutedNodeRuntimeInfo runtime,
Uri? baseUri,
}) async {
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestStarted,
info: runtime,
),
);
try {
final response = await engine.handlePortable(
portableRequestFromFetch(request, baseUri: baseUri),
);
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestFinished,
info: runtime,
),
);
return FetchResponseView(
statusCode: response.statusCode,
headers: response.headers.asMap,
body: response.body,
);
} catch (error, stackTrace) {
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestFailed,
info: runtime,
error: error,
stackTrace: stackTrace,
),
);
rethrow;
}
}