devkit-js
Version:
Devkit CLI is a Command Line tool for superfast scaffolding of any simple Vanilla JavaScript App
48 lines (39 loc) • 1.34 kB
JavaScript
const notify = require('./Notify');
const path = require('path');
const Git = require('./Git');
const Files = require('./Files');
const Terminal = require('./Terminal');
const srcDir = () => {
const SRC_DIR = path.resolve(`${__dirname}`);
return path.join(SRC_DIR, '../', 'template');
};
const destDir = (projectName) => {
const DEST_DIR = path.resolve(`${process.cwd()}`);
return path.join(DEST_DIR, projectName);
};
const create = async (projectName) => {
try {
const srcPath = srcDir();
const destPath = destDir(projectName);
Terminal.clear();
Terminal.banner();
notify.progress(`creating files`);
await Files.setTemplate(srcPath, destPath);
await Files.replaceName(destPath, projectName);
notify.success(`project files created`);
notify.progress(`installing dependencies`);
await Terminal.chdir(path.join(destPath, 'client'));
await Terminal.run('npm install');
notify.success(`project dependencies installed`);
notify.progress(`initializing git repository`);
await Git.gitignore();
await Git.init();
notify.success(`repo successfully initialized\n`);
Terminal.clear();
Terminal.banner();
} catch (error) {
notify.failure(error.message);
process.exit();
}
};
module.exports = create;