apply method
Applies one raw frame and optionally hydrates query.
Implementation
void apply(Map<String, Object?> frame, {QueryClient? query}) {
switch (frame['type']) {
case 'initial':
_applyInitial(Map<String, Object?>.from(frame['data']! as Map), query);
case 'query':
if (query != null) {
_hydrateQuery(
query,
Map<String, Object?>.from(frame['query']! as Map),
);
}
case 'queryError':
if (query != null) {
if (frame['query'] case final Map queryState) {
_hydrateQuery(query, Map<String, Object?>.from(queryState));
}
}
default:
if (frame.containsKey('loads') && frame.containsKey('location')) {
_applyInitial(frame, query);
return;
}
throw FormatException('Unknown handoff frame: ${frame['type']}');
}
}