@httpc/cli
Version:
httpc cli for building function-based API with minimal code and end-to-end type safety
37 lines (36 loc) • 1.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyDir = exports.createDir = exports.clearDir = exports.isDirEmpty = exports.exists = void 0;
const promises_1 = __importDefault(require("fs/promises"));
async function exists(path) {
return await promises_1.default.access(path).then(() => true, () => false);
}
exports.exists = exists;
async function isDirEmpty(dir) {
return !await exists(dir) || (await promises_1.default.readdir(dir)).length === 0;
}
exports.isDirEmpty = isDirEmpty;
async function clearDir(dir) {
await promises_1.default.rm(dir, { recursive: true, force: true }).catch(() => { });
await promises_1.default.mkdir(dir, { recursive: true });
}
exports.clearDir = clearDir;
async function createDir(dir) {
await promises_1.default.mkdir(dir, { recursive: true });
}
exports.createDir = createDir;
async function copyDir(source, dest, exclude) {
if (!await exists(dest)) {
await promises_1.default.mkdir(dest, { recursive: true });
}
await promises_1.default.cp(source, dest, {
recursive: true,
filter: exclude && exclude.length > 0 && ((source) => {
return !exclude.some(x => !!source.match(x));
}) || undefined
});
}
exports.copyDir = copyDir;