saveJsonExport function

Future<String> saveJsonExport(
  1. Map<String, dynamic> data
)

Save JSON data as a browser download. Web implementation: creates a Blob and triggers download via anchor click.

Implementation

Future<String> saveJsonExport(Map<String, dynamic> data) async {
  final jsonStr = jsonEncode(data);
  final dateStr = DateTime.now().toIso8601String().substring(0, 10);
  final filename = 'dutato-export-$dateStr.json';

  final blob = web.Blob(
    [jsonStr.toJS].toJS,
    web.BlobPropertyBag(type: 'application/json'),
  );
  final url = web.URL.createObjectURL(blob);

  final anchor = web.document.createElement('a') as web.HTMLAnchorElement
    ..href = url
    ..download = filename;
  anchor.click();
  web.URL.revokeObjectURL(url);

  return filename;
}