@eve-tools/cli
Version:
Everest cli to speed up project start-up and standardized frontend , backend architecture
41 lines (40 loc) • 1.79 kB
JavaScript
import { PROJECT_SCRIPT } from "../../constants/constants.js";
import { execAsync, getAbsolutePath, getProperDirName, printTextIntoBox, tryCatchWrapper, } from "../../utils/index.js";
import { spinner } from "../../utils/spinner.js";
import { CheckPackageJson, updatePackageJson, } from "../manage-package-json/index.js";
import { wantToInstallDepsPrompt, wantToRunProjectPrompt, } from "../../prompts/index.js";
import { runProject } from "../run-project.js";
export const initProcess = async ({ name: projectName, ...otherMeta }) => {
const absolutePath = getAbsolutePath(projectName);
const { wantToInstall } = await wantToInstallDepsPrompt();
if (!wantToInstall)
return;
const { pkgJson, absolutePkgJsonPath } = await CheckPackageJson(absolutePath);
await updatePackageJson({
pkgJson,
absolutePkgJsonPath,
projectName: getProperDirName(projectName),
});
await installDependencies(absolutePath, otherMeta);
};
const installDependencies = async (path, otherMeta) => {
const framework = otherMeta.framework;
const { start, fail, succeed } = spinner("Installing dependencies 🚀");
await tryCatchWrapper(async () => {
start();
await execAsync("npm install", { cwd: path });
succeed("Done.");
printTextIntoBox([
"Dependencies installed successfully 👌\nHappy coding 🚀\n\n",
`🤖 Start : ${PROJECT_SCRIPT[framework]?.start}\n`,
`🔧 Build : ${PROJECT_SCRIPT[framework]?.build}`,
]);
const { wantToRunProject } = await wantToRunProjectPrompt();
if (!wantToRunProject)
return;
runProject({ framework, path });
}, () => {
fail("Failed to install dependencies");
return;
});
};