decodeDiagnostics static method
Decodes health without accepting unrecognized fields or negative counts.
Implementation
static JackfieldDiagnostics decodeDiagnostics(Object? payload) {
final data = _envelope(
payload,
{
'mechanism',
'permissions',
'pendingFlutterEvents',
'pendingHttpEvents',
'httpPausedForAuthentication',
},
{'lastError'},
);
final permissions = _stringMap(data['permissions']);
return JackfieldDiagnostics(
mechanism: _enum(data['mechanism'], JackfieldMechanism.values),
permissions: permissions.map((name, value) {
_validatedId(name);
return MapEntry(name, _enum(value, JackfieldPermissionState.values));
}),
pendingFlutterEvents: _nullableCount(data['pendingFlutterEvents']),
pendingHttpEvents: _nullableCount(data['pendingHttpEvents']),
httpPausedForAuthentication: _bool(data['httpPausedForAuthentication']),
lastError: data['lastError'] == null
? null
: _decodeError(data['lastError']),
);
}