offline_sync_outbox 1.0.2 copy "offline_sync_outbox: ^1.0.2" to clipboard
offline_sync_outbox: ^1.0.2 copied to clipboard

Queue API writes offline and replay them in order with persistent storage and configurable retries for Dart and Flutter.

example/offline_sync_outbox_example.dart

import 'dart:io';

import 'package:offline_sync_outbox/offline_sync_outbox.dart';

Future<void> main() async {
  final directory = await Directory.systemTemp.createTemp('offline_sync_demo_');
  final path = '${directory.path}${Platform.pathSeparator}offline-queue.json';
  final connectivity = ManualSyncConnectivity(isOnline: false);

  final manager = OfflineSyncManager(
    store: JsonFileSyncStore(path),
    connectivity: connectivity,
    autoSync: false,
    processor: (operation) async {
      stdout.writeln(
        'Uploading ${operation.action}: ${operation.payload}',
      );
      return const SyncResult.success();
    },
  );

  await manager.initialize();
  try {
    await manager.enqueue(
      action: 'create_note',
      payload: <String, Object?>{'text': 'Written while offline'},
    );

    final offline = await manager.synchronize();
    stdout.writeln('Pending while offline: ${offline.pending}');

    connectivity.setOnline(true);
    final synced = await manager.synchronize();
    stdout.writeln('Uploaded: ${synced.succeeded}');
  } finally {
    await manager.dispose();
    await directory.delete(recursive: true);
  }
}
0
likes
160
points
118
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Queue API writes offline and replay them in order with persistent storage and configurable retries for Dart and Flutter.

Repository (GitHub)
View/report issues
Contributing

Topics

#offline-first #synchronization #queue #retry #flutter

License

MIT (license)

More

Packages that depend on offline_sync_outbox