mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-29 00:52:01 +00:00
e7cc2757c3
Co-authored-by: Alexander Lichter <manniL@gmx.net>
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
import wrapAnsi from 'wrap-ansi'
|
|
import chalk from 'chalk'
|
|
import boxen from 'boxen'
|
|
import { maxCharsPerLine } from './constants'
|
|
|
|
export function indent (count, chr = ' ') {
|
|
return chr.repeat(count)
|
|
}
|
|
|
|
export function indentLines (string, spaces, firstLineSpaces) {
|
|
const lines = Array.isArray(string) ? string : string.split('\n')
|
|
let s = ''
|
|
if (lines.length) {
|
|
const i0 = indent(firstLineSpaces === undefined ? spaces : firstLineSpaces)
|
|
s = i0 + lines.shift()
|
|
}
|
|
if (lines.length) {
|
|
const i = indent(spaces)
|
|
s += '\n' + lines.map(l => i + l).join('\n')
|
|
}
|
|
return s
|
|
}
|
|
|
|
export function foldLines (string, spaces, firstLineSpaces, charsPerLine = maxCharsPerLine()) {
|
|
return indentLines(wrapAnsi(string, charsPerLine), spaces, firstLineSpaces)
|
|
}
|
|
|
|
export function colorize (text) {
|
|
return text
|
|
.replace(/\[[^ ]+]/g, m => chalk.grey(m))
|
|
.replace(/<[^ ]+>/g, m => chalk.green(m))
|
|
.replace(/ (-[-\w,]+)/g, m => chalk.bold(m))
|
|
.replace(/`([^`]+)`/g, (_, m) => chalk.bold.cyan(m))
|
|
}
|
|
|
|
export function box (message, title, options) {
|
|
return boxen([
|
|
title || chalk.white('Nuxt Message'),
|
|
'',
|
|
chalk.white(foldLines(message, 0, 0, maxCharsPerLine()))
|
|
].join('\n'), Object.assign({
|
|
borderColor: 'white',
|
|
borderStyle: 'round',
|
|
padding: 1,
|
|
margin: 1
|
|
}, options)) + '\n'
|
|
}
|
|
|
|
export function successBox (message, title) {
|
|
return box(message, title || chalk.green('✔ Nuxt Success'), {
|
|
borderColor: 'green'
|
|
})
|
|
}
|
|
|
|
export function warningBox (message, title) {
|
|
return box(message, title || chalk.yellow('⚠ Nuxt Warning'), {
|
|
borderColor: 'yellow'
|
|
})
|
|
}
|
|
|
|
export function errorBox (message, title) {
|
|
return box(message, title || chalk.red('✖ Nuxt Error'), {
|
|
borderColor: 'red'
|
|
})
|
|
}
|
|
|
|
export function fatalBox (message, title) {
|
|
return errorBox(message, title || chalk.red('✖ Nuxt Fatal Error'))
|
|
}
|