webFileOfBytes function

PFile? webFileOfBytes(
  1. dynamic file, {
  2. String? name,
  3. int? size,
})

Since web doesn't have access to write files, we need to just keep things in memory...

Implementation

PFile? webFileOfBytes(dynamic file, {String? name, int? size}) {
  name ??= puid();
  if (file is Uint8List) {
    return RawPFile.ofBytes(name, file);
  } else if (file is List<int>) {
    return RawPFile.ofBytes(name, Uint8List.fromList(file));
  } else if (file is Stream) {
    assert(size != null, "If you provide a stream, you must provide a length");
    Stream<List<int>> _fileStream;

    if (file is Stream<List<int>>) {
      _fileStream = file;
    } else if (file is Stream<int>) {
      _fileStream = file.chunked(PFile.defaultChunkSize);
    } else {
      throw "Only support streams of List<int> or int";
    }

    return RawPFile.ofSingleStream(name, _fileStream, size: size!);
  } else {
    return null;
  }
}