@stryke/fs
Version:
A package containing various file system utilities that expand the functionality of NodeJs's built-in `fs` module.
49 lines (48 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDirectory = createDirectory;
exports.createDirectorySync = createDirectorySync;
exports.extractFileFromTar = extractFileFromTar;
exports.extractFileFromTarGzip = extractFileFromTarGzip;
exports.removeDirectory = removeDirectory;
exports.removeDirectorySync = removeDirectorySync;
var _exists = require("@stryke/path/exists");
var _nanotar = require("nanotar");
var _nodeFs = require("node:fs");
var _promises = require("node:fs/promises");
function createDirectorySync(r) {
if (!(0, _exists.existsSync)(r)) return (0, _nodeFs.mkdirSync)(r, {
recursive: !0
});
}
async function createDirectory(r) {
if (!(await (0, _exists.exists)(r))) return (0, _promises.mkdir)(r, {
recursive: !0
});
}
function removeDirectorySync(r) {
if ((0, _exists.existsSync)(r)) return (0, _nodeFs.rmSync)(r, {
recursive: !0
});
}
async function removeDirectory(r) {
if ((0, _exists.existsSync)(r)) return (0, _promises.rm)(r, {
recursive: !0
});
}
async function extractFileFromTar(r, i, t) {
const e = (0, _nanotar.parseTar)(await (0, _promises.readFile)(r)).find(n => n.name === i);
if (!e?.data) return;
(await (0, _exists.exists)(t)) || (await (0, _promises.mkdir)(t, {
recursive: !0
})), (0, _nodeFs.createWriteStream)(t).write(e.data);
}
async function extractFileFromTarGzip(r, i, t) {
const e = (await (0, _nanotar.parseTarGzip)(await (0, _promises.readFile)(r))).find(n => n.name === i);
if (!e?.data) return;
(await (0, _exists.exists)(t)) || (await (0, _promises.mkdir)(t, {
recursive: !0
})), (0, _nodeFs.createWriteStream)(t).write(e.data);
}