chore: improvement cli

This commit is contained in:
Leifer Mendez
2023-01-13 22:31:45 +01:00
parent 2f8d5a3fb3
commit d18efc88a9
3 changed files with 67 additions and 41 deletions

View File

@@ -2,22 +2,29 @@ const { red, yellow, green, bgCyan } = require('kleur')
const { exec } = require('node:child_process') const { exec } = require('node:child_process')
const checkNodeVersion = () => { const checkNodeVersion = () => {
return new Promise((resolve, reject) => {
console.log(bgCyan('🚀 Revisando tu Node.js')) console.log(bgCyan('🚀 Revisando tu Node.js'))
const version = process.version const version = process.version
const majorVersion = parseInt(version.replace('v', '').split('.').shift()) const majorVersion = parseInt(
version.replace('v', '').split('.').shift()
)
if (majorVersion < 16) { if (majorVersion < 16) {
console.error( console.error(
red( red(
`🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}` `🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}`
) )
) )
process.exit(1) console.log(``)
reject('ERROR_NODE')
} }
console.log(green(`Node.js: ${version} compatible ✅`)) console.log(green(`Node.js: ${version} compatible ✅`))
console.log(``) console.log(``)
resolve()
})
} }
const checkOs = () => { const checkOs = () => {
return new Promise((resolve, reject) => {
console.log(bgCyan('🙂 Revisando tu sistema operativo')) console.log(bgCyan('🙂 Revisando tu sistema operativo'))
const os = process.platform const os = process.platform
if (!os.includes('win32')) { if (!os.includes('win32')) {
@@ -34,18 +41,25 @@ const checkOs = () => {
} }
console.log(green(`OS: compatible ✅`)) console.log(green(`OS: compatible ✅`))
console.log(``) console.log(``)
resolve()
})
} }
const checkGit = () => { const checkGit = () => {
return new Promise((resolve, reject) => {
console.log(bgCyan('🤓 Revisando GIT')) console.log(bgCyan('🤓 Revisando GIT'))
exec('git --version', (error) => { exec('git --version', (error) => {
if (error) { if (error) {
console.error(red(`🔴 Se require instalar GIT`)) console.error(red(`🔴 Se require instalar GIT`))
process.exit(1) console.log(``)
} reject('ERROR_GIT')
}) } else {
console.log(green(`Git: Compatible ✅`)) console.log(green(`Git: Compatible ✅`))
console.log(``) console.log(``)
resolve()
}
})
})
} }
module.exports = { checkNodeVersion, checkOs, checkGit } module.exports = { checkNodeVersion, checkOs, checkGit }

View File

@@ -1,6 +1,6 @@
const prompts = require('prompts') const prompts = require('prompts')
const { join } = require('path') const { join } = require('path')
const { yellow, red, cyan, bgMagenta } = require('kleur') const { yellow, red, cyan, bgMagenta, bgRed } = require('kleur')
const { existsSync } = require('fs') const { existsSync } = require('fs')
const { copyBaseApp } = require('../create-app') const { copyBaseApp } = require('../create-app')
const { checkNodeVersion, checkOs, checkGit } = require('../check') const { checkNodeVersion, checkOs, checkGit } = require('../check')
@@ -21,6 +21,22 @@ const bannerDone = () => {
} }
const startInteractive = async () => { const startInteractive = async () => {
try {
console.clear()
await checkNodeVersion()
checkOs()
await checkGit()
console.clear()
await nextSteps()
} catch (e) {
console.error(bgRed(`Ups! 🙄 algo no va bien.`))
console.error(
bgRed(`Revisa los requerimientos minimos en la documentacion`)
)
}
}
const nextSteps = async () => {
const questions = [ const questions = [
{ {
type: 'text', type: 'text',
@@ -58,10 +74,6 @@ const startInteractive = async () => {
}, },
] ]
console.clear()
checkOs()
checkNodeVersion()
checkGit()
const onCancel = () => { const onCancel = () => {
console.log('¡Proceso cancelado!') console.log('¡Proceso cancelado!')
return true return true

View File

@@ -1,6 +1,6 @@
{ {
"name": "create-bot-whatsapp", "name": "create-bot-whatsapp",
"version": "0.0.78-alpha.0", "version": "0.0.92-alpha.0",
"description": "", "description": "",
"main": "./lib/bundle.create-bot-whatsapp.cjs", "main": "./lib/bundle.create-bot-whatsapp.cjs",
"files": [ "files": [