execute method
execute command
Implementation
@override
Future<void> execute() async {
var middlewareName = this.name;
final middlewareDir =
flags.contains('--dir') ? _getArgValue('--dir') : 'lib/middleware';
final verbose = flags.contains('--verbose') ? true : false;
final customFileName =
flags.contains('--file') ? _getArgValue('--file') : null;
if (verbose) {
LogService.info('Creating middleware $middlewareName in $middlewareDir');
}
final projectDir = Directory.current.path;
final fullMiddlewareDir = path.join(projectDir, middlewareDir);
try {
if (!Directory(fullMiddlewareDir).existsSync()) {
Directory(fullMiddlewareDir).createSync(recursive: true);
if (verbose) {
LogService.info("Created directory: $middlewareDir");
}
}
// Determine the file path
// Determine the file path
final fileName =
customFileName != null
? customFileName.endsWith('.dart')
? customFileName
: '$customFileName.dart'
: '${_getFileNameFromMiddlewareName(middlewareName)}_middleware.dart';
final filePath = path.join(fullMiddlewareDir, fileName);
// Check if the file already exists
if (File(filePath).existsSync()) {
LogService.error("File already exists: $filePath");
return;
}
// Generate the middleware content
final middlewareContent = _generateMiddlewareContent(middlewareName);
// Write the file
File(filePath).writeAsStringSync(middlewareContent);
LogService.success("Generated middleware at: $filePath");
} catch (e, stackTrace) {
LogService.error(
"Error creating middleware",
error: e,
stackTrace: stackTrace,
);
}
}