1 | const { red, gray } = require('chalk')
|
2 | const { UiengineInputError } = require('./error')
|
3 |
|
4 | const markSample = gray
|
5 |
|
6 | const getText = msg =>
|
7 | msg instanceof Array ? msg.join('\n\n') : msg
|
8 |
|
9 | const reportSuccess = msg => {
|
10 | reportInfo(msg, { icon: '✅', transient: false })
|
11 | }
|
12 |
|
13 | const reportInfo = (msg, opts = { icon: 'ℹ️', transient: true }) => {
|
14 | process.stdout.write(`${opts.icon} ${getText(msg)}${opts.transient ? '\r' : '\n'}`)
|
15 | }
|
16 |
|
17 | const reportError = (msg, err) => {
|
18 | const text = getText(msg)
|
19 |
|
20 | let errMessage = ''
|
21 | if (err instanceof UiengineInputError) {
|
22 | const { message, stack } = err.originalError || {}
|
23 | const original = stack || message
|
24 | errMessage = `\n\n${err.message}` + (original ? `\n\n${original}` : '')
|
25 | } else if (err) {
|
26 | const { message, stack } = err
|
27 | errMessage = `\n\n${stack || message}`
|
28 | }
|
29 |
|
30 | process.stderr.write(`🚨 ${red(text)}${errMessage}\n\n`)
|
31 | }
|
32 |
|
33 | module.exports = {
|
34 | markSample,
|
35 | reportSuccess,
|
36 | reportInfo,
|
37 | reportError
|
38 | }
|