Implement edit and exit

This commit is contained in:
2026-02-22 16:43:47 -06:00
parent 8d16fb41ab
commit e5acc2e8b1
6 changed files with 85 additions and 11 deletions

View File

@@ -1,11 +1,22 @@
import * as readline from 'node:readline'
import {BehaviorSubject} from "../util/subject.js";
import {Lifecycle, LifecycleAware} from "../util/lifecycle.js";
import {StreamLogger} from "../util/log.js";
import {log} from "../log.js";
export class Input extends BehaviorSubject<string> implements LifecycleAware {
private rl?: readline.Interface
private log: StreamLogger = log.getStreamLogger('input')
public hasPrompt(): boolean {
return !!this.rl
}
public setupPrompt(): void {
this.log.verbose({
setupPrompt: { hasExistingPrompt: !!this.rl },
})
if ( this.rl ) {
this.closePrompt()
}
@@ -25,6 +36,10 @@ export class Input extends BehaviorSubject<string> implements LifecycleAware {
}
public closePrompt(): void {
this.log.verbose({
closePrompt: { hasExistingPrompt: !!this.rl },
})
this.rl?.close()
this.rl = undefined
}