open static method
Opens an existing session file, parsing and validating every line.
Implementation
static Future<JsonlSessionStorage> open(
FileSystem fs,
String filePath,
) async {
final content = _fsOrThrow(
await fs.readTextFile(filePath),
'Failed to read session $filePath',
);
final lines = [
for (final line in content.split('\n'))
if (line.trim().isNotEmpty) line,
];
if (lines.isEmpty) _invalidSession(filePath, 'missing session header');
final header = _parseHeaderLine(lines.first, filePath);
final entries = <SessionRecord>[];
String? leafId;
for (var i = 1; i < lines.length; i++) {
final entry = _parseEntryLine(lines[i], filePath, i + 1);
entries.add(entry);
leafId = _leafIdAfter(entry);
}
return JsonlSessionStorage._(fs, filePath, header, entries, leafId);
}