Skip to main content
Module

x/compress/tgz/mod.ts

compress and uncompress for Deno
Go to Latest
File
import * as tar from "../tar/mod.ts";import { gunzipFile, gzipFile } from "../gzip/gzip_file.ts";import type { compressInterface, uncompressInterface } from "../interface.ts";import { path } from "../deps.ts";
export async function uncompress(src: string, dest: string, options?: uncompressInterface): Promise<void> { const filename = path.basename(src); const extname = path.extname(filename); const tarFilename = extname === ".tgz" ? filename.slice(0, -3) + "tar" : (extname === ".gz" ? filename.slice(0, -3) : filename); const tmpDir = await Deno.makeTempDir(); const tmpPath = path.join(tmpDir, tarFilename); await gunzipFile(src, tmpPath); await tar.uncompress(tmpPath, dest, options); await Deno.remove(tmpDir, { recursive: true });}
export async function compress( src: string, dest: string, options?: compressInterface,): Promise<void> { const filename = path.basename(src); const tmpDir = await Deno.makeTempDir(); const tmpPath = path.join(tmpDir, filename); await tar.compress(src, tmpPath, options); await gzipFile(tmpPath, dest); await Deno.remove(tmpDir, { recursive: true });}