greybel-js
Version:
Transpiler/Interpreter for GreyScript. (GreyHack)
38 lines (37 loc) • 1.16 kB
JavaScript
import { OutputHandler } from 'greybel-interpreter';
import { transformInternalKeyEventToKeyEvent } from '../key-event.js';
import { Terminal } from '../output.js';
export default class CLIOutputHandler extends OutputHandler {
terminal;
constructor() {
super();
this.terminal = new Terminal();
}
print(_vm, message, { appendNewLine = true, replace = false } = {}) {
this.terminal.print(message, {
appendNewLine,
replace
});
}
update(_vm, message, { appendNewLine = false, replace = false } = {}) {
this.terminal.update(message, {
appendNewLine,
replace
});
}
clear(_vm) {
console.clear();
}
async progress(vm, timeout) {
await this.terminal.progress(vm.getSignal(), timeout);
}
waitForInput(_vm, isPassword, message) {
return this.terminal.waitForInput(isPassword, message);
}
async waitForKeyPress(vm, message) {
const key = await this.terminal.waitForKeyPress(message, () => {
vm.exit();
});
return transformInternalKeyEventToKeyEvent(key);
}
}