All files / classes Command.ts

100% Statements 25/25
100% Branches 4/4
100% Functions 4/4
100% Lines 25/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2612x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 1x 86x 1x 1x 86x 86x 86x 1x  
import type {
  ChatInputCommandInteraction,
  RESTPostAPIChatInputApplicationCommandsJSONBody,
} from "discord.js"
 
export type CommandData = RESTPostAPIChatInputApplicationCommandsJSONBody
 
export type CommandContext = {
  interaction: ChatInputCommandInteraction
}
 
export type CommandOptions<TData extends CommandData = CommandData> = {
  data: TData
  execute: (context: CommandContext) => Promise<void> | void
}
 
export class Command<TData extends CommandData = CommandData> {
  public readonly data: TData
  public readonly execute: CommandOptions<TData>["execute"]
 
  public constructor(options: CommandOptions<TData>) {
    this.data = options.data
    this.execute = options.execute
  }
}