assertValidTarStreamOptions
import { assertValidTarStreamOptions } from "jsr:@ende/tar";function ยท experimental
function assertValidTarStreamOptions(options: TarStreamOptions): voidAsserts that the options provided are valid for a TarStream.
options: TarStreamOptionsThe 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);