You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
966 B

1 year ago
const ejs = require('ejs')
const path = require('path')
const fs = require('fs')
const compiler = (template,data) => {
const templatePath = path.resolve(__dirname,`./${template}`)
return new Promise((resolve,reject)=>{
ejs.renderFile(templatePath,{data},(err,result)=>{
if(err){
console.log(err);
reject(err)
return
}
resolve(result)
})
})
}
const writeFile = (path,content) =>{
return fs.promises.writeFile(path,content)
}
const resolveName = name => {
if (/(-|_)/g.test(name)) {
let splitName = name.split(/(-|_)/).filter(i => !/(-|_)/.test(i)).map(i => i.charAt(0).toUpperCase() + i.slice(1))
return splitName.join('')
} else {
return (name.charAt(0).toUpperCase() + name.slice(1))
}
}
const ensureDirectoryExistence = (filePath) => {
if (!fs.existsSync(filePath)) {
fs.mkdirSync(filePath);
}
}
module.exports = {
compiler,writeFile,resolveName,ensureDirectoryExistence
}