18 lines
461 B
TypeScript
18 lines
461 B
TypeScript
import { MenuConfig, MenuPrinter } from './interface';
|
|
import { ConsolePrinter } from './console';
|
|
import { OledPrinter } from './oled';
|
|
|
|
export class Menu {
|
|
private _printer: MenuPrinter;
|
|
|
|
constructor(config: MenuConfig[], isConsole: boolean = false) {
|
|
this._printer = isConsole
|
|
? new ConsolePrinter(config)
|
|
: new OledPrinter(config);
|
|
}
|
|
|
|
public async getSelection(): Promise<MenuConfig> {
|
|
return this._printer.getSelection();
|
|
}
|
|
}
|