1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-27 10:32:58 +02:00
joplin/CliClient/app/vorpal-utils.js

91 lines
1.8 KiB
JavaScript
Raw Normal View History

2017-07-04 21:12:30 +02:00
import { time } from 'lib/time-utils.js';
const vorpalUtils = {};
let vorpal_ = null;
let redrawStarted_ = false;
let redrawLastUpdateTime_ = time.unixMs();
let redrawLastLog_ = null;
let redrawEnabled_ = true;
let errorStackTraceEnabled_ = false;
function initialize(vorpal) {
vorpal_ = vorpal;
}
function redrawEnabled() {
// Always disabled for now - doesn't play well with command.cancel()
// function (it makes the whole app quit instead of just the
// current command).
return false;
return redrawEnabled_;
}
2017-07-04 21:12:30 +02:00
function setRedrawEnabled(v) {
redrawEnabled_ = v;
}
function setStackTraceEnabled(v) {
errorStackTraceEnabled_ = v;
}
function redraw(s) {
if (!redrawEnabled()) {
2017-07-04 21:12:30 +02:00
const now = time.unixMs();
if (now - redrawLastUpdateTime_ > 1000) {
if (vorpal_.activeCommand) {
vorpal_.activeCommand.log(s);
} else {
vorpal_.log(s);
}
redrawLastUpdateTime_ = now;
redrawLastLog_ = null;
} else {
redrawLastLog_ = s;
}
} else {
vorpal_.ui.redraw(s);
}
redrawStarted_ = true;
}
function redrawDone() {
if (!redrawStarted_) return;
if (!redrawEnabled()) {
2017-07-04 21:12:30 +02:00
if (redrawLastLog_) {
if (vorpal_.activeCommand) {
vorpal_.activeCommand.log(redrawLastLog_);
} else {
vorpal_.log(redrawLastLog_);
}
}
} else {
vorpal_.ui.redraw.done();
}
redrawStarted_ = false;
}
function log(commandInstance, o) {
if (errorStackTraceEnabled_) {
commandInstance.log(o);
} else {
if (o instanceof Error) {
commandInstance.log(o.message);
} else {
commandInstance.log(o);
}
}
}
vorpalUtils.initialize = initialize;
vorpalUtils.redraw = redraw;
vorpalUtils.redrawDone = redrawDone;
vorpalUtils.setRedrawEnabled = setRedrawEnabled;
vorpalUtils.setStackTraceEnabled = setStackTraceEnabled;
vorpalUtils.log = log;
export { vorpalUtils };