todo-app/lib/sync/local_backup_factory_web.dart
Krzysztof kuhy Rudnicki a0d37c4df8
Some checks are pending
dependency freshness / dependencies on newest stable (push) Waiting to run
file-length / file length <= 250 lines (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
release-apk / release (APK) (push) Waiting to run
Re-point paths for the ~ reorganisation (home-tidy)
Also bumps Flutter 3.47.3, flutter_secure_storage 11.1.0, idb_shim 2.9.9,
sqflite_common_ffi 2.4.3, very_good_analysis 11 and mcp 2.2.0 so the
freshness gate lets this through; v11 adds async_return_with_no_await, so
the 18 flagged return sites now await explicitly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AwtowrowDXx6ccmWVPkCaF
2026-09-11 19:49:03 +02:00

22 lines
950 B
Dart

import 'package:todo/data/desktop_backup_client.dart';
import 'package:todo/data/note_repository.dart';
import 'package:todo/sync/desktop_wrapper.dart';
import 'package:todo/sync/local_backup.dart';
/// Builds the [LocalBackup] for the browser-hosted desktop app.
///
/// A browser cannot write to the filesystem, so the wrapper that serves the
/// build owns the file. This keeps `~/src/todo/BACKLOG.md` current — the user's
/// tooling and the `todo` MCP server read it, and without this the move to a
/// web build would let it silently go stale.
LocalBackup createLocalBackup(NoteRepository repository) {
final client = DesktopBackupClient(baseUrl: desktopWrapperOrigin);
return LocalBackup(
fetch: repository.listNotes,
// Recovery reads the same file back through the wrapper, so a cleared
// browser profile can still restore from the on-disk backlog.
reader: client.readBacklog,
writer: client.writeBacklog,
);
}