exportTo method

Future<List<File>> exportTo(
  1. Directory target, {
  2. Iterable<FileLogSession>? sessions,
})

Exports each of the given sessions (all by default) as a separate plain file <sessionId>.jsonl into target (created recursively).

Chunks are concatenated in order with exactly one meta line (the first). Existing target files are overwritten. Returns the created files, in the same order as the sessions.

Implementation

Future<List<File>> exportTo(
  Directory target, {
  Iterable<FileLogSession>? sessions,
}) async {
  final selected = sessions?.toList() ?? await list();
  await target.create(recursive: true);

  final created = <File>[];
  for (final session in selected) {
    final file = File('${target.path}/${session.id}.jsonl');
    final sink = file.openWrite();
    try {
      await sink.addStream(session.read());
    } finally {
      await sink.close();
    }
    created.add(file);
  }

  return created;
}