RunState.fromJson constructor
RunState.fromJson(
- Map<String, dynamic> json
)
Implementation
factory RunState.fromJson(Map<String, dynamic> json) {
if (json['schema'] != currentSchema) {
throw const FormatException('unsupported run-state schema');
}
if (json['config-hash'] is! String ||
json['started-at'] is! String ||
json['updated-at'] is! String ||
json['jobs'] is! Map) {
throw const FormatException('missing or invalid required fields');
}
final rawJobs = json['jobs'];
final jobs = <String, Map<String, dynamic>>{};
for (final entry in (rawJobs as Map).entries) {
if (entry.value is! Map) {
throw FormatException("job '${entry.key}' is not an object");
}
jobs[entry.key.toString()] = Map<String, dynamic>.from(
entry.value as Map,
);
}
return RunState(
configHash: json['config-hash'] as String,
operation: json['operation']?.toString() ?? '',
startedAt: DateTime.parse(json['started-at'].toString()),
updatedAt: DateTime.parse(json['updated-at'].toString()),
version: json['resolved-version'] is Map
? ResolvedVersion.fromJson(
Map<String, dynamic>.from(json['resolved-version'] as Map),
)
: null,
jobs: jobs,
);
}