npmize
Version:
Let's create an npm package without worrying about anything.
44 lines (43 loc) • 1.56 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.cleanDir = cleanDir;
exports.writeFileSync = writeFileSync;
exports.autoCreateDir = autoCreateDir;
exports.getAllFiles = getAllFiles;
exports.getExistedFilePath = getExistedFilePath;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function cleanDir(dir, createDir = true) {
if (fs_1.default.existsSync(dir)) {
fs_1.default.rmSync(dir, { recursive: true, force: true });
}
if (createDir) {
fs_1.default.mkdirSync(dir, { recursive: true });
}
}
function writeFileSync(filePath, data) {
autoCreateDir(path_1.default.dirname(filePath));
fs_1.default.writeFileSync(filePath, data);
}
function autoCreateDir(...paths) {
const exactPath = path_1.default.join(...paths);
if (!fs_1.default.existsSync(exactPath)) {
fs_1.default.mkdirSync(exactPath, { recursive: true });
}
return exactPath;
}
function getAllFiles(dir) {
const getTarget = (target) => {
if (fs_1.default.statSync(target).isFile())
return [target];
return fs_1.default.readdirSync(target).flatMap((file) => getTarget(path_1.default.join(target, file)));
};
return getTarget(dir);
}
function getExistedFilePath(target) {
if (fs_1.default.existsSync(target) && fs_1.default.statSync(target).isFile())
return target;
}
;