New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@codedungeon/messenger

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@codedungeon/messenger - npm Package Compare versions

Comparing version
0.14.0
to
0.14.1
+138
.history/examples/test_messenger_20210809102258.js
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
// 'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
// console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger.info('', 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl('', 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl]('', 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger.info('', 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger.info(command, 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger.success(command, 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl](command, 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl]('HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl]('', 'HELLO')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
Messenger[lbl](`${command} label`)
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log('${test}')
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(`${test}`)
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
Messenger['INFO']('test')
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
Messenger['lblInfo']('test')
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log(test.stripAnsi())
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log(stripAnsi(`${command} label`.toLocaleUpperCase()))
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log(stripAnsi(lbl))
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
commands = ['info']
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const { default: chalk } = require('chalk')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + chalk.blue(' <== Formatted Label Only'))
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const { default: chalk } = require('chalk')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + chalk.cyan(' <== Formatted Label Only'))
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const { default: chalk } = require('chalk')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
const colors = require('chalk')
const Messenger = require('../src/messenger')
Messenger.initLogger(true, 'logs', 'messenger')
const stripAnsi = require('strip-ansi')
const { default: chalk } = require('chalk')
const titleCase = str => {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
})
}
let showIcon = true
let showLabel = true
console.log('')
let commands = [
'critical',
'error',
'success',
'warning',
'warn',
'important',
'info',
'note',
'notice',
'log',
'debug',
'status'
]
let testObj = { fname: 'Mike', lname: 'Erickson' }
commands.forEach(command => {
Messenger[command](`test ${command}`)
Messenger[command](testObj)
Messenger[command]([command, 'mike', 'joseph', 'erickson'])
Messenger[command]([command, 'mike', 'joseph', 'erickson'], command.toUpperCase())
Messenger[command](
[command, 'mike', 'joseph', 'erickson'],
showLabel ? command.toUpperCase() : '',
showIcon
)
let lbl = 'lbl' + titleCase(command)
let test = Messenger[lbl](`${command} label`.toLocaleUpperCase())
console.log(test + ' <== Formatted Label Only (default color intentional)')
console.log('')
})
Messenger.write('log', 'write static')
Messenger.dd('stop')
Messenger.info('Lines displayed width of terminal window')
Messenger.line('.')
Messenger.line('_')
console.log('')
console.log('')
Messenger.center('message centered in available terminal window')
Messenger.center('alternate message')
console.log('')
Messenger.center(colors.green('message centered in available terminal window'))
Messenger.center(colors.magenta('alternate message'))
console.log('')
Messenger.dump('this', 'is', 'a', 'test')
let msg = 'Hello World'
console.log('')
Messenger.line('-')
console.log('')
Messenger.alert({ type: 'critical', msg, label: '', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: false })
Messenger.alert({ type: 'critical', msg, label: 'CRITICAL', icon: true })
console.log('')
process.exit()
Messenger.alert({ type: 'error', msg, label: '', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: false })
Messenger.alert({ type: 'error', msg, label: 'ERROR', icon: true })
console.log('')
Messenger.alert({ type: 'debug', msg, label: '', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: false })
Messenger.alert({ type: 'debug', msg, label: 'DEBUG', icon: true })
console.log('')
Messenger.alert({ type: 'important', msg, label: '', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: false })
Messenger.alert({ type: 'important', msg, label: 'IMPORTANT', icon: true })
console.log('')
Messenger.alert({ type: 'info', msg, label: '', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: false })
Messenger.alert({ type: 'info', msg, label: 'INFO', icon: true })
console.log('')
Messenger.alert({ type: 'log', msg, label: '', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: false })
Messenger.alert({ type: 'log', msg, label: 'LOG', icon: true })
console.log('')
Messenger.alert({ type: 'note', msg, label: '', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: false })
Messenger.alert({ type: 'note', msg, label: 'NOTE', icon: true })
console.log('')
Messenger.alert({ type: 'notice', msg, label: '', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: false })
Messenger.alert({ type: 'notice', msg, label: 'NOTICE', icon: true })
console.log('')
Messenger.alert({ type: 'status', msg, label: '', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: false })
Messenger.alert({ type: 'status', msg, label: 'STATUS', icon: true })
console.log('')
Messenger.alert({ type: 'success', msg, label: '', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: false })
Messenger.alert({ type: 'success', msg, label: 'SUCCESS', icon: true })
console.log('')
Messenger.alert({ type: 'warn', msg, label: '', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: false })
Messenger.alert({ type: 'warn', msg, label: 'WARN', icon: true })
console.log('')
Messenger.alert({ type: 'warning', msg, label: '', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: false })
Messenger.alert({ type: 'warning', msg, label: 'WARNING', icon: true })
console.log('')
Messenger.print({ msg: 'Print Test' })
Messenger.print({ msg: 'Print Test', label: 'INFO' })
Messenger.print({ type: 'success', msg: 'Print Test', label: '', icon: true })
console.log('')
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
console.log('${output}')
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
console.log(`${output}`)
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
console.log(`here ${label}`)
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger
*
* Copyright (c) 2020-2021 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const utils = require('./utils')
const Logger = require('./logger')
const clearCli = require('cli-clear')
const stripAnsi = require('strip-ansi')
let windowSize = require('window-size')
const { dd, dump } = require('dumper.js')
const { format, getMilliseconds, isThisISOWeek } = require('date-fns')
const homedir = require('node-homedir')
const path = require('path')
const pkgInfo = require('../package.json')
/* istanbul ignore next */
if (windowSize === undefined) {
// this is required when message executed in non terminal window -- such as VSCode code runner
windowSize = { width: 100 }
}
/**
* print
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
const print = args => {
// console.log(args);
// this has been disabled, using jest function mock instead
/* istanbul ignore next */
process.env.NODE_ENV === 'test' ? null : console.log(args)
}
/**
* Messenger
*
* @class Messenger
*/
class Messenger {
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
/**
*Creates an instance of Messenger.
* @memberof Messenger
*/
constructor() {
this.systemLog = false
this.appName = '@codedungeon/messenger'
this.logToFile = false
this.methods = [
'write',
'critical',
'lblCritical',
'danger',
'lblDanger',
'debug',
'error',
'lblError',
'important',
'lblImportant',
'info',
'lblInfo',
'log',
'note',
'notice',
'lblNotice',
'status',
'success',
'lblSuccess',
'warn',
'lblWarn',
'warning',
'lblWarning'
]
}
/**
* icons
*
* @param {*} type
* @return {*}
* @memberof Messenger
*/
icons(type) {
return utils.icons(type)
}
/**
* messageColors
*
* @param {string} [type='info']
* @return {*}
* @memberof Messenger
*/
messageColors(type = 'info') {
return utils.messageColors(type)
}
/**
* version
*
* @return {*}
* @memberof Messenger
*/
version() {
return pkgInfo.version
}
/**
* alert
*
* @param {object} [config={}]
* @return {*}
* @memberof Messenger
*/
alert(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/**
*
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
print(config = {}) {
let alertConfig = this.validateConfig(Object.assign({ type: 'info', msg: '', icon: false }, config))
return this[alertConfig.type](alertConfig.msg, alertConfig.label, alertConfig.icon)
}
/* istanbul ignore next */
/**
* initLogger
*
* @param {boolean} [logToFile=false]
* @param {string} [logDir="logs"]
* @param {string} [appName="app"]
* @memberof Messenger
*/
initLogger(logToFile = false, logDir = 'logs', appName = 'app') {
if (logDir === 'system') {
if (process.platform === 'win32') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
if (process.platform === 'darwin') {
logDir = path.join(homedir(), 'Library', 'Logs')
}
this.systemLog = true
}
this.logToFile = logToFile
this.appName = appName
this.logger = new Logger({ path: logDir, appName, system: this.systemLog })
this.methods = this.logger.methods()
}
clearLog() {
this.logger.clear()
}
disableLog() {
this.logToFile = false
}
enableLog() {
this.logToFile = true
}
/* istanbul ignore next */
/**
* writeToLog
*
* @param {string} [type=""]
* @param {*} args
* @memberof Messenger
*/
writeToLog(type = '', label = '', msg = '', forceLogToFile = false) {
if (this.logToFile || forceLogToFile) {
if (this.methods.includes(type)) {
let output = stripAnsi(msg).replace(/\n/gi, ' - ')
if (this.logger) {
return this.logger[type](output)
}
}
}
return ''
}
/**
* clear
*
* @memberof Messenger
*/
clear() {
clearCli()
}
/**
* loggerWrite
*
* @param {*} type (default: log)
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWrite(type = 'log', msg = '') {
this.writeToLog(type, '', msg, true)
return msg
}
/**
* write
*
* @param {string} [type="log"]
* @param {*} msg
* @returns
* @memberof Messenger
*/
write(type = '', msg = '') {
let label = ''
let showIcon = false
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
if (this !== undefined) {
this.writeToLog(type, label, msg)
}
return output
}
/**
* critical
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
critical(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('critical') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orangered').black(label)}${label ? ' ' : ''}${icon}${colors.keyword(
'orangered'
)(msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('critical', label, msg)
}
return output
}
lblCritical(label = '') {
return colors.bgKeyword('orangered').black(` ${label} `)
}
/**
* loggerCritical
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerCritical(msg = '') {
return this.writeToLog('critical', '', msg, true)
}
/**
* error
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
error(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('error') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('error', label, msg)
}
return output
}
lblError(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerError
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerError(msg = '') {
return this.writeToLog('error', '', msg, true)
}
/**
* danger
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
danger(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('danger') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgRed.black(label)}${label ? ' ' : ''}${colors.red(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('danger', label, msg)
}
return output
}
lblDanger(label = '') {
return colors.bgRed.black(` ${label} `)
}
/**
* loggerDanger
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDanger(msg = '') {
return this.writeToLog('danger', '', msg, true)
}
/**
* success
*
* @param {object | string} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
success(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('success') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgGreen.black(label)}${label ? ' ' : ''}${colors.green(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('success', label, msg)
}
return output
}
lblSuccess(label = '') {
return colors.bgGreen.black(` ${label} `)
}
/**
* loggerSuccess
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerSuccess(msg = '') {
return this.writeToLog('success', '', msg, true)
}
/**
* warning
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warning(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warning') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warning', label, msg)
}
return output
}
lblWarning(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarning
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarning(msg = '') {
return this.writeToLog('warning', '', msg, true)
}
/**
* warn
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
warn(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('warn') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('warn', label, msg)
}
return output
}
lblWarn(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerWarn
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerWarn(msg = '') {
return this.writeToLog('warn', '', msg, true)
}
/**
* important
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
important(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('important') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}${colors.yellow(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('important', label, msg)
}
return output
}
lblImportant(label = '') {
return colors.bgYellow.black(` ${label} `)
}
/**
* loggerImportant
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerImportant(msg = '') {
return this.writeToLog('important', '', msg, true)
}
/**
* info
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
info(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('info') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('info', label, msg)
}
return output
}
lblInfo(label = '') {
return colors.bgCyan.black(` ${label} `)
}
/**
* loggerInfo
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerInfo(msg = '') {
return this.writeToLog('info', '', msg, true)
}
/**
* debug
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
debug(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('debug') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('darkgray').black(label)}${label ? ' ' : ''}${colors.gray(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('debug', label, msg)
}
return output
}
lblDebug(label = '') {
return colors.bgKeyword('darkgray').black(` ${label} `)
}
/**
* loggerDebug
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerDebug(msg = '') {
return this.writeToLog('debug', '', msg, true)
}
/**
* log
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
log(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('log') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgWhite.black(label)}${label ? ' ' : ''}${icon + msg}`
print(output)
if (this !== undefined) {
this.writeToLog('log', label, msg)
}
return output
}
lblLog(label = '') {
return colors.bgWhite.black(` ${label} `)
}
/**
* loggerLog
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerLog(msg = '') {
return this.writeToLog('log', '', msg, true)
}
/**
* status
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
status(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('status') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}${colors.magenta(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('status', label, msg)
}
return output
}
lblStatus(label = '') {
return colors.bgMagenta.black(` ${label} `)
}
/**
* loggerStatus
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerStatus(msg = '') {
return this.writeToLog('status', '', msg, true)
}
/**
* notice
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
notice(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('notice') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.blue(icon + msg)}`
print(output)
if (this !== undefined) {
this.writeToLog('notice', label, msg)
}
return output
}
lblNotice(label = '') {
return colors.bgBlue.black(` ${label} `)
}
/**
* loggerNotice
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNotice(msg = '') {
return this.writeToLog('notice', '', msg, true)
}
/**
* note
*
* @param {*} msg
* @param {string} [label=""]
* @param {boolean} [showIcon=false]
* @returns
* @memberof Messenger
*/
note(msg = '', label = '', showIcon = false) {
label = label ? ' ' + label + ' ' : ''
let icon = showIcon ? utils.icons('note') + ' ' : ''
msg = utils.formatMessage(msg)
let output = `${colors.bgKeyword('orange').black(label)}${label ? ' ' : ''}${colors.keyword('orange')(
icon + msg
)}`
print(output)
if (this !== undefined) {
this.writeToLog('note', label, msg)
}
return output
}
lblNote(label = '') {
return colors.bgKeyword('orange').black(` ${label} `)
}
/**
* loggerNote
*
* @param {*} msg
* @returns
* @memberof Messenger
*/
loggerNote(msg = '') {
return this.writeToLog('note', '', msg, true)
}
/* istanbul ignore next */
/**
* processing
*
* @param {*} msg
* @memberof Messenger
*/
processing(msg = '') {
console.log(colors.yellow(msg))
}
/**
* timestamp
*
* @param {boolean} [useAMPM=false]
* @param {boolean} [showSeconds=true]
* @param {boolean} [showMicro=false]
* @returns
* @memberof Messenger
*/
/* istanbul ignore next */
timestamp(useAMPM = false, showSeconds = true, showMicro = false) {
let tsd = new Date()
let tsFormat = showSeconds ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd HH:mm'
tsFormat = useAMPM ? tsFormat + ' a' : tsFormat
let ms = showMicro && !useAMPM ? '.' + padZero(getMilliseconds(tsd), 3) : ''
return format(tsd, tsFormat) + ms
}
/**
* terminalInfo
*
* @returns
* @memberof Messenger
*/
terminalInfo() {
return windowSize
}
/**
* dd (die dump)
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dd(...data) {
dd(data)
}
/**
* dump
*
* @param {*} data
* @memberof Messenger
*/
/* istanbul ignore next */
dump(...data) {
dump(data)
}
/**
* line
*
* @param {string} [msg=""]
* @memberof Messenger
*/
/* istanbul ignore next */
line(msg = '') {
let output = msg
if (windowSize !== undefined) {
output = msg.repeat(windowSize.width - 2, msg)
}
print(output)
return output
}
/**
* center
*
* @param {string} [msg=""]
* @param {string} [fillText=" "]
* @memberof Messenger
*/
/* istanbul ignore next */
center(msg = '', fillText = ' ') {
// if the terminal width is shorter than message length, dont display fillText
let width = windowSize === undefined ? 100 : windowSize.width
if (stripAnsi(msg).length >= width) {
print(msg)
return msg
} else {
let left = parseInt((width - stripAnsi(msg).length) / 2, 10)
let padStr = fillText.repeat(left / stripAnsi(fillText).length)
let output = padStr + msg + padStr
print(output)
return output
}
}
/**
* icons
*
* @returns
* @memberof Messenger
*/
getIcons() {
return utils.icons
}
/**
* validateConfig
*
* @param {*} [config={}]
* @return {*}
* @memberof Messenger
*/
validateConfig(config = {}) {
let finalConfig = Object.assign(config)
finalConfig.type = finalConfig.type === '' ? 'info' : finalConfig.type
if (!this.methods.includes(finalConfig.type)) {
finalConfig.type = 'info'
}
return finalConfig
}
}
// export all methods so they call be used statically
exports.write = new Messenger().critical
exports.critical = new Messenger().critical
exports.lblCritical = new Messenger().lblCritical
exports.danger = new Messenger().danger
exports.lblDanger = new Messenger().lblDanger
exports.error = new Messenger().error
exports.lblError = new Messenger().lblError
exports.success = new Messenger().success
exports.lblSuccess = new Messenger().lblSuccess
exports.warning = new Messenger().warning
exports.lblWarning = new Messenger().lblWarning
exports.warn = new Messenger().warn
exports.lblWarn = new Messenger().lblWarning
exports.important = new Messenger().important
exports.important = new Messenger().lblImportant
exports.info = new Messenger().info
exports.lblInfo = new Messenger().lblInfo
exports.notice = new Messenger().notice
exports.lblNotice = new Messenger().lblNotice
exports.status = new Messenger().status
exports.status = new Messenger().lblStatus
exports.debug = new Messenger().debug
exports.lblDebug = new Messenger().lblDebug
exports.log = new Messenger().log
exports.lblLog = new Messenger().lblLog
exports.dd = new Messenger().dd
exports.dump = new Messenger().dump
exports.terminalInfo = new Messenger().terminalInfo
exports.center = new Messenger().center
exports.line = new Messenger().line
exports.icons = new Messenger().icons
exports.getIcons = new Messenger().getIcons
exports.messageColors = new Messenger().messageColors
module.exports = new Messenger()
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function (type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️',
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: (msg) => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: (type) => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' },
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function (type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgCyan.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function (type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
},
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
// info: { fg: '36m', bg: '46m' },
info: { fg: '33m', bg: '43m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgCyan.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgBlue.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgCyan.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgGreen.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
// output = `${colors.bgCyan.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
/*-------------------------------------------------------------------------------------------
* @codedungeon/messenger/utils
*
* Copyright (c) 2020 Mike Erickson / Codedungeon. All rights reserved.
* Licensed under the MIT license. See LICENSE in the project root for license information.
* -----------------------------------------------------------------------------------------*/
const os = require('os')
const colors = require('chalk')
const { dd, dump } = require('dumper.js')
module.exports = {
icons: function(type) {
let icons = {
critical: '🚫',
danger: '🚫',
debug: '◼',
error: '✖',
important: '★',
info: '⌽',
info_alt: '💡',
log: '⇢',
note: '◉',
notice: '◉',
status: '◯',
success: '✔',
warn: '⚠️',
warning: '⚠️'
}
return icons[type]
},
padZero: (num = 0, size = 3) => {
return ('000000000' + num).substr(-size)
},
formatMessage: msg => {
let result = msg
if (Array.isArray(msg)) {
return msg.join(' ')
}
if (typeof msg === 'object') {
if (Array.isArray(msg)) {
result = msg.toString().replace(/,/gi, ' ')
} else {
result = JSON.stringify(msg)
result = result.replace(/,/gi, ', ').replace(/:/gi, ': ')
}
}
return result
},
messageColors: type => {
let colors = {
critical: { fg: '38m', bg: '48m' },
danger: { fg: '31m', bg: '41m' },
debug: { fg: '90m', bg: '48m' },
error: { fg: '31m', bg: '41m' },
important: { fg: '33m', bg: '43m' },
info: { fg: '36m', bg: '46m' },
log: { fg: '37m', bg: '47m' },
note: { fg: '38m', bg: '48m' },
notice: { fg: '34m', bg: '44m' },
status: { fg: '35m', bg: '45m' },
success: { fg: '32m', bg: '42m' },
warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}
// if (os.platform() === 'linux') {
// messageColors.critical.fg = '001b[91m'
// messageColors.critical.bg = '001b[101m'
// messageColors.note.fg = '001b[93m'
// messageColors.note.bg = '001b[103m'
// messageColors.debug.fg = '001b[90m'
// messageColors.debug.bg = '001b[47m'
// }
return colors[type]
},
label: function(type = 'info', label = '') {
/* eslint-disable */
let output = ''
if (label.length === 0) {
return
}
label = label[0] === ' ' ? label : ' ' + label + ' '
switch (type) {
case 'critical':
output = `${colors.bgKeyword('orangered').black(label)}\n`
break
case 'danger':
case 'error':
output = `${colors.bgRed.black(label)}\n`
break
case 'debug':
output = `${colors.bgKeyword('darkgray').black(label)}\n`
break
case 'important':
output = `${colors.bgYellow.black(label)}\n`
break
case 'info':
output = `${colors.bgCyan.black(label)}\n`
break
case 'log':
output = `${colors.bgWhite.black(label)}\n`
break
case 'note':
output = `${colors.bgKeyword('orange').black(label)}\n`
break
case 'notice':
output = `${colors.bgBlue.black(label)}\n`
break
case 'success':
output = `${colors.bgGreen.black(label)}\n`
break
case 'status':
output = `${colors.bgMagenta.black(label)}${label ? ' ' : ''}\n`
break
case 'warn':
case 'warning':
output = `${colors.bgYellow.black(label)}${label ? ' ' : ''}\n`
break
default:
output = `${colors.bgCyan.black(label)}\n`
break
}
if (output.length > 0) {
process.env.NODE_ENV === 'test' ? null : console.log(output)
}
/* eslint-enable */
},
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {
if (label) {
this.label(type, label)
}
dump(obj)
return true
}
return false
}
}
+1
-1
{
"name": "@codedungeon/messenger",
"version": "0.14.0",
"version": "0.14.1",
"description": "clean node console messaging and logging",

@@ -5,0 +5,0 @@ "license": "MIT",

@@ -522,3 +522,3 @@ /*-------------------------------------------------------------------------------------------

let output = `${colors.bgBlue.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`
let output = `${colors.bgCyan.black(label)}${label ? ' ' : ''}${colors.cyan(icon + msg)}`

@@ -534,3 +534,3 @@ print(output)

lblInfo(label = '') {
return colors.bgBlue.black(` ${label} `)
return colors.bgCyan.black(` ${label} `)
}

@@ -537,0 +537,0 @@

@@ -13,3 +13,3 @@ /*-------------------------------------------------------------------------------------------

module.exports = {
icons: function (type) {
icons: function(type) {
let icons = {

@@ -29,3 +29,3 @@ critical: '🚫',

warn: '⚠️',
warning: '⚠️',
warning: '⚠️'
}

@@ -39,3 +39,3 @@ return icons[type]

formatMessage: (msg) => {
formatMessage: msg => {
let result = msg

@@ -57,3 +57,3 @@ if (Array.isArray(msg)) {

messageColors: (type) => {
messageColors: type => {
let colors = {

@@ -72,3 +72,3 @@ critical: { fg: '38m', bg: '48m' },

warn: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' },
warning: { fg: '33m', bg: '43m' }
}

@@ -86,3 +86,3 @@ // if (os.platform() === 'linux') {

label: function (type = 'info', label = '') {
label: function(type = 'info', label = '') {
/* eslint-disable */

@@ -142,3 +142,3 @@ let output = ''

object: function (type, obj = null, label = null) {
object: function(type, obj = null, label = null) {
if (typeof obj === 'object') {

@@ -152,3 +152,3 @@ if (label) {

return false
},
}
}