@controlla/cli
Version:
Command line interface for rapid Controlla projects development
44 lines (35 loc) โข 1.38 kB
JavaScript
const chalk = require('chalk')
const figlet = require('figlet')
const semver = require('semver')
const krnos = require('@krnos/kronos')
const { clearConsole } = require('@vue/cli-shared-utils')
exports.generateTitle = async function (checkUpdate) {
const local = require('../../package.json').version
const { current, latest } = await krnos.getVersions(local)
let title = chalk.bold.blue(`Vue CLI v${current}`)
title = chalk.cyan(
figlet.textSync(`Controlla CLI v${current}`, { horizontalLayout: 'full' })
)
title += ' By Ivรกn Sotelo'
if (process.env.VUE_CLI_TEST) {
title += ' ' + chalk.blue.bold('TEST')
}
if (process.env.VUE_CLI_DEBUG) {
title += ' ' + chalk.magenta.bold('DEBUG')
}
if (checkUpdate && semver.gt(latest, current)) {
if (process.env.VUE_CLI_API_MODE) {
title += chalk.green(` ๐๏ธ Update available: ${latest}`)
} else {
title += chalk.green(`
โโโโโโโโโโโโโโโโโโโโโโโโ${`โ`.repeat(latest.length)}โโโ
โ ๐๏ธ Update available: ${latest} โ
โโโโโโโโโโโโโโโโโโโโโโโโ${`โ`.repeat(latest.length)}โโโ`)
}
}
return title
}
exports.clearConsole = async function clearConsoleWithTitle (checkUpdate) {
const title = await exports.generateTitle(checkUpdate)
clearConsole(title)
}