UNPKG

@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
"use strict"; 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;