UNPKG

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