Archived
BaseCommand structure
This commit is contained in:
1 parent
3ff3086e3e
commit
996c3733a0
2 files changed
+34
No files matched your search
@@ -0,0 +1,27 @@
|
|||||||
|
import { CommandType, BaseCommandInit } from "../types/BaseCommand";
|
||||||
|
|
||||||
|
export class BaseCommand {
|
||||||
|
public readonly name: string;
|
||||||
|
public readonly description: string;
|
||||||
|
public readonly type: CommandType;
|
||||||
|
public static nameRegExp: RegExp = /^[a-zA-Z]{1,32}$/;
|
||||||
|
public static descriptionRegExp: RegExp = /^[a-zA-Z]{1,100}$/;
|
||||||
|
|
||||||
|
constructor(o: BaseCommandInit) {
|
||||||
|
if (BaseCommand.nameRegExp.test(o.name)) {
|
||||||
|
this.name = o.name;
|
||||||
|
} else {
|
||||||
|
throw new Error("Incorrect command name");
|
||||||
|
}
|
||||||
|
if (o.description) {
|
||||||
|
if (BaseCommand.descriptionRegExp.test(o.description)) {
|
||||||
|
this.description = o.description;
|
||||||
|
} else {
|
||||||
|
throw new Error("Incorrect command description");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.description = "No description";
|
||||||
|
}
|
||||||
|
this.type = o.type;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
export interface BaseCommandInit {
|
||||||
|
name: string;
|
||||||
|
description?: string;
|
||||||
|
type: CommandType;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CommandType = "CHAT" | "MESSAGE" | "USER";
|
||||||
Reference in new issue
Block a user