removeCronTasks function
Remove tasks by id. No-op if none match.
Implementation
Future<void> removeCronTasks(
List<String> ids, {
String? dir,
List<CronTask>? sessionTasks,
}) async {
if (ids.isEmpty) return;
// Sweep session store first.
if (dir == null && sessionTasks != null) {
final idSet = ids.toSet();
final removedCount = sessionTasks.where((t) => idSet.contains(t.id)).length;
sessionTasks.removeWhere((t) => idSet.contains(t.id));
if (removedCount == ids.length) return;
}
final idSet = ids.toSet();
final tasks = await readCronTasks(dir: dir);
final remaining = tasks.where((t) => !idSet.contains(t.id)).toList();
if (remaining.length == tasks.length) return;
await writeCronTasks(remaining, dir: dir);
}