Один из инструментов командной строки с встроенной анимацией для вывода текста.
$ npm i @ntbl/log --save
const Log = require('@ntbl/log')
const log = Log({
name: 'dots', // тип анимации
interval: 80, // время цикла
color: 'green' // цвет
})
// запуск
log.start(data => `${data.frame} downloading data from a remote server`)
// через две секунды остановка и очистка
setTimeout(() => log.stop(), 2000)
// или сохранение последней анимации
setTimeout(() => log.stop(true), 2000)
// вывод текста в одной строке
log.log('вывод текста в одну строку')
// очистка
log.clear()
В log включены все анимации cli-spinners.
// по умолчанию dots
Log('dots')
// или
Log({
name: 'earth'
})
Вы можете добавлять свои собственные интересные анимированные эффекты для log.
Например, мы добавляем анимацию «ружьё».
const log = require('@ntbl/log')()
log.addSpinner('rifle', {
"interval": 80,
"frames": [
"▅ ",
"▅︻ ",
"▅︻┳┷ ",
"▅︻┳┷一一",
"▅︻┳┷一 ",
"▅︻┳┷ ",
"▅︻ ",
"▅ ",
]
})
log.start({
name: 'rifle',
color: 'red',
text: data => `${data.frame} a custom rifle`
})
Состояние помогает объединить сообщения, отправленные в разное время, и использовать их семантически.
const log = require('@ntbl/log')()
// регистрация сообщения
log.register('request', {
// можно настроить любое состояние
downloading: data => `${data.frame} downloading data from a remote server`,
completed: '√ download completed',
})
// использование
log.request.downloading()
// обратите внимание, что последнее состояние будет сохранено
setTimeout(() => log.request.completed(), 2000)
Настраиваемое состояние также может быть объектом, удовлетворяющим некоторые индивидуальные настройки.
Log.register('request', {
downloading: {
name: 'earth', // использовать анимацию earth
interval: 50, // быстрее
color: 'red', // красный цвет!
text: data => `${data.frame} downloading data from a remote server`
}
})
По умолчанию при изменении состояния внутреннее использование log.stop()
останавливает и очищает предыдущее сообщение о состоянии. Если вам нужно сохранить его, вы можете это сделать.
const log = require('@ntbl/log')()
log.register('request', {
hello: {
text: '( ̄︶ ̄)↗ Hello World!',
// включить сохранение
save: true,
},
downloading: data => `${data.frame} downloading data from a remote server`,
completed: '√ download completed',
})
// после изменения состояния сохраните это сообщение
log.request.hello()
setTimeout(() => log.request.downloading(), 500)
// это тоже будет сохранено
// потому что состояние всегда будет продолжаться
setTimeout(() => log.request.completed(), 2000)
Если ваши сообщения генерируются динамически, вы также можете передать параметры.
const log = require('@ntbl/log')()
log.register('request', {
// все переданные параметры будут сохранены в args
downloading: data => `${data.frame} downloading from ${data.args[0]} data from a remote server`,
completed: '√ download completed',
})
log.request.downloading('www.baidu.com')
setTimeout(() => log.request.completed(), 2000)
Log поддерживает включение и выключение вывода текста одним щелчком мыши, это функция, оптимизированная для тестирования.
При выводе текста log обновляет интерфейс командной строки, поэтому при устранении неполадок или тестировании текст, выводимый функциями console
и т. д., будет перекрываться. Чтобы обеспечить нормальное использование, мы можем:
log.config.disabled = true
Теперь весь вывод текста текущего экземпляра отключён.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )