Nuxt/packages/cli/src/utils/banner.js
2020-11-30 23:44:04 +01:00

61 lines
1.6 KiB
JavaScript

import consola from 'consola'
import env from 'std-env'
import chalk from 'chalk'
import { successBox } from './formatting'
import { getFormattedMemoryUsage } from './memory'
export function showBanner (nuxt, showMemoryUsage = true) {
if (env.test) {
return
}
if (env.minimalCLI) {
for (const listener of nuxt.server.listeners) {
consola.info('Listening on: ' + listener.url)
}
return
}
const titleLines = []
const messageLines = []
// Name and version
const { bannerColor, badgeMessages } = nuxt.options.cli
titleLines.push(`${chalk[bannerColor].bold('Nuxt')} @ ${nuxt.constructor.version || 'exotic'}\n`)
const label = name => chalk.bold.cyan(`${name}:`)
// Environment
const isDev = nuxt.options.dev
let _env = isDev ? 'development' : 'production'
if (process.env.NODE_ENV !== _env) {
_env += ` (${chalk.cyan(process.env.NODE_ENV)})`
}
titleLines.push(`${label('Environment')} ${_env}`)
// Rendering
const isSSR = nuxt.options.render.ssr
const rendering = isSSR ? 'server-side' : 'client-side'
titleLines.push(`${label('Rendering')} ${rendering}`)
// Target
const target = nuxt.options.target || 'server'
titleLines.push(`${label('Target')} ${target}`)
if (showMemoryUsage) {
titleLines.push('\n' + getFormattedMemoryUsage())
}
// Listeners
for (const listener of nuxt.server.listeners) {
messageLines.push(chalk.bold('Listening: ') + chalk.underline.blue(listener.url))
}
// Add custom badge messages
if (badgeMessages.length) {
messageLines.push('', ...badgeMessages)
}
process.stdout.write(successBox(messageLines.join('\n'), titleLines.join('\n')))
}