ZipEncoderTransformer class

Not a standard dart:convert Codec because it doesn't perform simple byte-to-byte conversions, acting purely as a StreamTransformer.

Please note that onDone may never be called on failure, you have to listen for both onError and onDone to identify the end of stream. Example for .encoder:

Stream<ArchiveFile> filesOf(Directory dir) async* {
  await for (final entity in dir.list(recursive: true)) {
    if (entity is File) {
      final input = InputFileStream(entity.path);
      try {
        yield ArchiveFile.stream(
            p.relative(entity.path, from: dir.path), input);
      } finally {
        // Runs once the encoder has written the entry, or when it is
        // cancelled
        await input.close();
      }
    }
  }
}

final upload =
    await HttpClient().putUrl(Uri.parse('https://example.com/backup'));
upload.headers.contentType = ContentType('application', 'zstd');
await upload.addStream(filesOf(Directory('data'))
     // also available for zip/tar
    .transform(zipCodec.encoder) // Stream<ArchiveFile> -> Stream<List<int>>
     // also available for zstd/xz/bzip2
    .transform(zstdCodec.encoder));
final response = await upload.close();
Inheritance

Constructors

ZipEncoderTransformer({int level = DeflateLevel.bestSpeed, String? password, Encoding filenameEncoding = const Utf8Codec(), bool streamed = true, bool autoClose = false})
const

Properties

autoClose → bool
Closes each entry once it is written, the way ZipEncoder.add does. Off by default, as it is on ZipEncoder.encodeStream: the entries are not ours, and whoever opened a file closes it
final
filenameEncoding → Encoding
final
hashCode → int
The hash code for this object.
no setterinherited
level → int
final
password → String?
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
streamed → bool
final

Methods

bind(Stream<ArchiveFile> stream) → Stream<List<int>>
Transforms the provided stream.
override
cast<RS, RT>() → StreamTransformer<RS, RT>
Provides a StreamTransformer<RS, RT> view of this stream transformer.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited