listRuns method
Future<List<RunState> >
listRuns({
- String? workflow,
- WorkflowStatus? status,
- int limit = 50,
- int offset = 0,
override
Lists workflow runs ordered by creation time.
Implementation
@override
/// Lists workflow runs ordered by creation time.
Future<List<RunState>> listRuns({
String? workflow,
WorkflowStatus? status,
int limit = 50,
int offset = 0,
}) async {
final candidates = _runs.values.where((state) {
if (workflow != null && state.workflow != workflow) return false;
if (status != null && state.status != status) return false;
return true;
}).toList()..sort((a, b) => b.id.compareTo(a.id));
final start = offset < 0 ? 0 : offset;
final limited = candidates.skip(start).take(limit);
final results = <RunState>[];
for (final state in limited) {
final steps = _steps[state.id];
var cursor = 0;
if (steps != null) {
final seen = <String>{};
for (final name in steps.keys) {
seen.add(_baseStepName(name));
}
cursor = seen.length;
}
results.add(state.copyWith(cursor: cursor));
}
return results;
}