@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
JavaScript
;
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));
}