UNPKG

@stryke/fs

Version:

A package containing various file system utilities that expand the functionality of NodeJs's built-in `fs` module.

25 lines (24 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compressDirectory = compressDirectory; var _uint8ArrayToString = require("@stryke/convert/uint8-array-to-string"); var _path = require("@stryke/path"); var _joinPaths = require("@stryke/path/join-paths"); var _nanotar = require("nanotar"); var _listFiles = require("./list-files.cjs"); var _readFile = require("./read-file.cjs"); var _writeFile = require("./write-file.cjs"); async function compressDirectory(t, i) { const e = await (0, _listFiles.listFiles)((0, _path.isDirectory)(t) ? (0, _joinPaths.joinPaths)(t, "**/*") : t, i), s = await (0, _nanotar.createTarGzip)(await Promise.all(e.map(async o => ({ name: o, data: await (0, _readFile.readFileIfExisting)(o) }))), { attrs: { group: "storm-software" } }); return (0, _writeFile.writeFile)(i?.destination ? (0, _path.isDirectory)(i.destination) ? (0, _joinPaths.joinPaths)(i.destination, `${new Date().getTime()}.tar.gz`) : i.destination : (0, _path.isDirectory)(t) ? `${(0, _joinPaths.joinPaths)((0, _path.resolveParentPath)(t), (0, _path.findFolderName)(t))}.tar.gz` : t, (0, _uint8ArrayToString.uint8ArrayToString)(s)); }