diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/Command.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/shared/Command.ts b/src/shared/Command.ts index e492f4a..b8c21ce 100644 --- a/src/shared/Command.ts +++ b/src/shared/Command.ts @@ -13,3 +13,32 @@ export enum Command { Set = "set", Help = "help", } + +export namespace Command { + export function members(): Command[] { + return [ + Command.Open , + Command.TabOpen , + Command.WindowOpen , + Command.Buffer , + Command.BufferDelete , + Command.BufferDeleteForce , + Command.BuffersDelete , + Command.BuffersDeleteForce , + Command.AddBookmark , + Command.Quit , + Command.QuitAll , + Command.Set , + Command.Help , + ] + } + + export function valueOf(value: string): Command { + const map = new Map(members().map(cmd => [cmd.toString(), cmd])); + const cmd = map.get(value); + if (!cmd) { + throw new Error(`unknown command '${value}`); + } + return cmd; + } +} |