anote

Форк
0
/
CommandFactory.ts 
52 строки · 1.3 Кб
1
import { Keywords } from "../flows/Keywords";
2
import { Command } from "./Command";
3
import { Delete } from "./Delete";
4
import { Help } from "./Help";
5
import { Ls } from "./Ls";
6
import { Mkdir } from "./Mkdir";
7
import { Error } from "./Error";
8
import { Context } from "telegraf";
9
import { Cat } from "./Cat";
10
import { Echo } from "./Echo";
11
import { Add } from "./Add";
12

13
const commandsMap = {
14
    del: Delete,
15
    help: Help,
16
    ls: Ls,
17
    mkdir: Mkdir,
18
    cat: Cat,
19
    echo: Echo,
20
    add: Add
21
};
22

23
export type Keys = keyof typeof commandsMap;
24
  
25
export class CommandFactory {
26
    ctx: Context;
27
    
28
    constructor(ctx: Context) {
29
        this.ctx = ctx;
30
    }
31

32
    getCommand(k: Keys): Command {
33
        switch(k) {
34
            case Keywords.HELP:
35
                return new Help(this.ctx);
36
            case Keywords.LIST:
37
                return new Ls(this.ctx);
38
            case Keywords.MKDIR:
39
                return new Mkdir(this.ctx);
40
            case Keywords.CAT:
41
                    return new Cat(this.ctx);
42
            case Keywords.DELETE:
43
                return new Delete(this.ctx);
44
            case Keywords.ECHO:
45
                return new Echo(this.ctx);
46
            case Keywords.ADD:
47
                return new Add(this.ctx);
48
            default:
49
                return new Error(this.ctx);
50
        }
51
    }
52
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.