Files
webshell/src/shell/Shell.ts
2026-05-17 23:52:31 +02:00

23 lines
816 B
TypeScript

import type { Item } from '../fs/Item'
import type { Program } from '../program/Program'
import type { Terminal } from '../terminal/Terminal'
import type { EventBroadcaster } from '../utils/EventBroadcaster'
export abstract class Shell {
readonly abstract Version: string
readonly abstract Name: string
broadcaster: EventBroadcaster
terminal: Terminal
constructor(broadcaster: EventBroadcaster, terminal: Terminal) {
this.broadcaster = broadcaster
this.terminal = terminal
}
abstract LoadProgram(program: Program, name: string): void
abstract ExecuteProgram(name: string, args: string[]): void
abstract Init(): Promise<void>
abstract HandleKeyInput(key: string, isCharacter: boolean): void
abstract SetWorkingDirectory(directory: Item): Promise<void>
}