UNPKG

@foal/cli

Version:

CLI tool for FoalTS

52 lines (51 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.installDependencies = installDependencies; // std const child_process_1 = require("child_process"); const safe_1 = require("colors/safe"); // FoalTS const logger_1 = require("./logger"); function isYarnInstalled() { try { (0, child_process_1.execSync)('yarn --version', { stdio: 'ignore' }); return true; } catch { return false; } } async function installDependencies(cwd = '') { const packageManager = isYarnInstalled() ? 'yarn' : 'npm'; const spinner = logger_1.logger.log(`%s 📦 Installing dependencies (${packageManager})...`, true); const args = ['install' /*, '--ignore-engines'*/]; const options = { cwd, shell: true, stdio: 'ignore', }; const success = await new Promise(resolve => { (0, child_process_1.spawn)(packageManager, args, options) .on('close', (code) => resolve(code === 0)); }); if (spinner) { spinner.stop(true); } if (!success) { logger_1.logger.log(` ❗ Installing dependencies (${packageManager})...`); logger_1.logger.log(); logger_1.logger.log((0, safe_1.red)(' Error: ') + 'A problem occurred during the installation of'); logger_1.logger.log('the dependencies. Try installing them manually by running'); logger_1.logger.log('the following command(s):'); logger_1.logger.log(); if (cwd) { logger_1.logger.logCommand(`cd ${cwd}`); } logger_1.logger.logCommand(`${packageManager} install`); return { failed: true }; } else { logger_1.logger.log(` 📦 Installing dependencies (${packageManager})...`); return { failed: false }; } }