zuraffa_file_picker 1.0.0 copy "zuraffa_file_picker: ^1.0.0" to clipboard
zuraffa_file_picker: ^1.0.0 copied to clipboard

Typed file picking for the Zuraffa ecosystem: a pure-Dart FilePickerPort (pick, save, pick directory) with an in-memory default adapter and federated platform adapters.

zuraffa_file_picker #

Typed file picking for the Zuraffa ecosystem: a pure-Dart FilePickerPort (pick files / save file / pick directory) with an in-memory default adapter, so picker flows test without a platform. Platform adapters (zuraffa_file_picker_android/ios/macos) implement the port as federated siblings — add one and the real OS picker is wired automatically at startup.

Usage #

final picker = FilePickerService();

// Pick files (empty result = user canceled).
final result = await picker.pickFiles(
  FilePickOptions(type: FileType.image, multiple: true),
);
if (!result.isCanceled) {
  for (final file in result.files) {
    print('${file.name} (${file.size} bytes) at ${file.path}');
  }
}

// Save a file (null = user canceled).
final path = await picker.saveFile(
  FileSaveOptions(fileName: 'report.pdf', bytes: pdfBytes),
);

// Pick a directory (null = user canceled).
final dir = await picker.pickDirectory();

DI #

final getIt = GetIt.instance;
registerFilePickerDependencies(getIt);
final picker = getIt<FilePickerService>();

Testing #

The default InMemoryFilePickerAdapter scripts outcomes:

final adapter = InMemoryFilePickerAdapter()
  ..setNextPickResult(FilePickResult(files: [PickedFile(path: '/tmp/a.png', name: 'a.png', size: 12)]));
final picker = FilePickerService(port: adapter);

This package is the foundation layer; see zuraffa_file_picker_platform_interface for the channel protocol and the platform packages for the native implementations.

0
likes
150
points
76
downloads

Documentation

API reference

Publisher

verified publisherzuraffa.com

Weekly Downloads

Typed file picking for the Zuraffa ecosystem: a pure-Dart FilePickerPort (pick, save, pick directory) with an in-memory default adapter and federated platform adapters.

Homepage
Repository (GitHub)
View/report issues

Topics

#file-picker #clean-architecture #zuraffa #state

License

MIT (license)

Dependencies

json_annotation, zorphy_annotation, zuraffa

More

Packages that depend on zuraffa_file_picker