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 }