import { BaseCommand } from '../../modules/ace/main.ts'; import { type CommandOptions } from '../../types/ace.ts'; /** * Command to create a new event class. * Events are data objects that encapsulate information about something * that happened in your application and can be dispatched to listeners. * * @example * ``` * ace make:event UserRegistered * ace make:event OrderCompleted * ace make:event EmailSent * ``` */ export default class MakeEvent extends BaseCommand { /** * The command name */ static commandName: string; /** * The command description */ static description: string; /** * Command options configuration. * Allows unknown flags to be passed through. */ static options: CommandOptions; /** * Name of the event class to create */ name: string; /** * Read the contents from this file (if the flag exists) and use * it as the raw contents */ contentsFrom: string; /** * Forcefully overwrite existing files */ force: boolean; /** * The stub template file to use for generating the event class */ protected stubPath: string; /** * Execute the command to create a new event class. * Generates the event file with proper event structure. */ run(): Promise; }