jetup
Version:
Jetup: JavaScript Project Setup! Jetting-up your next JS project in seconds with one command, using fully modular, customizable presets, instantly ready to code!.
83 lines • 3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFolderAndFiles = createFolderAndFiles;
exports.mergeFolderAndFiles = mergeFolderAndFiles;
exports.createOrReplaceFile = createOrReplaceFile;
exports.isFileExists = isFileExists;
exports.isFolderExists = isFolderExists;
exports.readFile = readFile;
exports.changeFilePermission = changeFilePermission;
exports.cwd = cwd;
const promises_1 = require("fs/promises");
const fs_1 = require("fs");
const glob_1 = require("glob");
const path_1 = require("path");
const cwd_1 = require("./cwd");
async function createFolderAndFiles(dirPath, files) {
if ((0, fs_1.existsSync)(dirPath)) {
await (0, promises_1.rm)(dirPath, { recursive: true, force: true });
}
await (0, promises_1.mkdir)(dirPath, { recursive: true });
for (const [fileName, content] of Object.entries(files)) {
const fullPath = (0, path_1.join)(dirPath, fileName);
await (0, promises_1.writeFile)(fullPath, content);
}
}
async function mergeFolderAndFiles(dirPath, files) {
await (0, promises_1.mkdir)(dirPath, { recursive: true });
for (const [relativeName, content] of Object.entries(files)) {
const fullPath = (0, path_1.join)(dirPath, relativeName);
const parentDir = (0, path_1.dirname)(fullPath);
await (0, promises_1.mkdir)(parentDir, { recursive: true });
await (0, promises_1.writeFile)(fullPath, content);
}
}
async function createOrReplaceFile(filePath, content) {
const dir = (0, path_1.dirname)(filePath);
if (!(0, fs_1.existsSync)(dir)) {
await (0, promises_1.mkdir)(dir, { recursive: true });
}
await (0, promises_1.writeFile)(filePath, content);
}
function isFileExists(pattern) {
const cleanPattern = pattern.replace(/\s+/g, '');
if (cleanPattern.includes('*')) {
const matches = (0, glob_1.sync)(cleanPattern, { nodir: true });
return matches.length > 0;
}
else {
return (0, fs_1.existsSync)(cleanPattern);
}
}
function isFolderExists(pattern) {
const cleanPattern = pattern.replace(/\s+/g, '');
if (cleanPattern.includes('*')) {
const matches = (0, glob_1.sync)(cleanPattern, { nodir: false });
return matches.some(p => {
try {
return (0, fs_1.statSync)(p).isDirectory();
}
catch {
return false;
}
});
}
else {
try {
return (0, fs_1.existsSync)(cleanPattern) && (0, fs_1.statSync)(cleanPattern).isDirectory();
}
catch {
return false;
}
}
}
function readFile(...filePath) {
return (0, fs_1.readFileSync)((0, path_1.resolve)(...filePath), { encoding: 'utf-8' });
}
function changeFilePermission(filePath, permission) {
return (0, fs_1.chmodSync)(filePath, permission);
}
function cwd(...segments) {
return (0, path_1.resolve)(cwd_1.CWD.value, ...segments);
}
//# sourceMappingURL=files.js.map