xpress-mvc
Version:
An MVC framework based on Express.js
135 lines (106 loc) • 3.48 kB
JavaScript
const path = require("path");
const fs = require("fs-extra");
const removeDirectory = async (repoName) => {
return new Promise((resolve,reject) => {
setTimeout(async () => {
try {
const newPath = path.join(process.cwd(), repoName)
await fs.remove(newPath)
resolve(true)
} catch (error) {
console.error("❌ Error removing folder:", error);
reject(error)
}
},1000)
})
}
const renameDirectory = async (repoName, newName) => {
return new Promise((resolve,reject) => {
setTimeout( async () => {
try {
const oldPath = path.join(process.cwd(), repoName);
const newPath = path.join(process.cwd(), newName ?? 'your-project');
await fs.copy(oldPath, newPath);
await fs.remove(oldPath);
resolve(true);
} catch (err) {
console.error("❌ Error renaming folder:", err);
reject(err)
}
},1000)
})
};
const moveDirectory = async (repoName,newName) => {
return new Promise(async (resolve,reject) => {
try {
const oldPath = path.join(process.cwd(), repoName);
const newPath = path.join(process.cwd(), newName ?? 'your-project');
await fs.move(oldPath,newPath,{overwrite: true})
console.log(`✅ Folder moved successfully.`);
resolve(true)
} catch (err) {
console.error("❌ Error renaming folder:", err);
reject(err)
}
})
}
const mergeDirectory = async (repoName,newName) => {
return new Promise( async (resolve,reject) => {
try{
const source = path.join(process.cwd(),repoName)
const newPath = path.join(process.cwd(), newName ?? 'your-project');
await fs.copy(source,newPath,{overwrite: false})
await fs.remove(source)
resolve(true)
}catch(err){
console.log('Error on merging directory: ' + err)
resolve(err)
}
})
}
const removeDependency = async () => {
return new Promise( async (resolve,reject) => {
if(fs.exists('node_modules')) await fs.remove('node_modules')
if(fs.exists('package-lock.json')) await fs.remove('package-lock.json')
if(fs.exists('package.json')) await fs.remove('package.json')
resolve(true)
})
}
const readJson = async () => {
return new Promise( async (resolve,reject) => {
try{
resolve(await fs.readJson('package.json'))
}catch(error){
reject(new Error("❌ Error reading package.json:", err.message))
}
})
}
const writeEnv = async (key,value) =>
{
return new Promise( async (resolve,reject) => {
try{
const dotenv = require("dotenv");
const env = dotenv.parse(await fs.readFile('.env'))
env[key] = value
await fs.writeFile('.env',
Object.entries(env).map(([key,value]) => `${key}=${value}`).join('\n')
)
resolve(true)
}catch(error){
reject(new Error(error))
}
})
}
const spaceToDash = (text) => {
text = text.trim()
if (text.includes(' ')) {
return text.split(' ').join('-')
}
return text
}
const firstLetterUpperCase = (text) => {
const firstLetter = text[0].toUpperCase();
return text.replace(text[0],firstLetter)
}
module.exports = { renameDirectory, moveDirectory,mergeDirectory,removeDependency,
readJson,writeEnv,spaceToDash,firstLetterUpperCase,removeDirectory };