assertValidTarStreamOptions

import { assertValidTarStreamOptions } from "jsr:@ende/tar";

function ยท experimental

function assertValidTarStreamOptions(options: TarStreamOptions): void

Asserts that the options provided are valid for a TarStream.

options: TarStreamOptions

The TarStreamOptions

Example: Usage

import { assertValidTarStreamOptions, TarStream, type TarStreamInput } from "@ende/tar";

 const paths = (await Array.fromAsync(Ende.readDir('./')))
  .filter(entry => entry.isFile)
  .map(entry => entry.name);

await Ende.mkdir('./out/', { recursive: true })
await ReadableStream.from(paths)
  .pipeThrough(new TransformStream<string, TarStreamInput>({
    async transform(path, controller) {
      const stats = await Ende.stat(path);
      const options = { mtime: stats.mtime?.getTime()! / 1000 };
      try {
        // Filter out any paths that would have an invalid options provided.
        assertValidTarStreamOptions(options);
        controller.enqueue({
          type: "file",
          path,
          size: stats.size,
          readable: (await Ende.open(path)).readable,
          options,
        });
      } catch (error) {
        console.error(error);
      }
    },
  }))
  .pipeThrough(new TarStream())
  .pipeThrough(new CompressionStream('gzip'))
  .pipeTo((await Ende.create('./out/archive.tar.gz')).writable);

Source