Compare commits
No commits in common. "82001183c26842692a2f95d270feddd738ce257f" and "a12bf7e618b67c0c2233803bfec99441eb3eed43" have entirely different histories.
82001183c2
...
a12bf7e618
|
|
@ -1,192 +0,0 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'commands/base_command.dart';
|
|
||||||
import 'commands/generate_command.dart';
|
|
||||||
import 'core/config.dart';
|
|
||||||
|
|
||||||
import 'utils/string_utils.dart';
|
|
||||||
|
|
||||||
/// Swagger CLI 应用程序
|
|
||||||
/// 使用命令模式架构的新版本CLI工具
|
|
||||||
class SwaggerCLI {
|
|
||||||
final Map<String, BaseCommand> _commands = {};
|
|
||||||
|
|
||||||
SwaggerCLI() {
|
|
||||||
_registerCommands();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 注册所有命令
|
|
||||||
void _registerCommands() {
|
|
||||||
_registerCommand(GenerateCommand());
|
|
||||||
// 未来可以添加更多命令:
|
|
||||||
// _registerCommand(ParseCommand());
|
|
||||||
// _registerCommand(ValidateCommand());
|
|
||||||
// _registerCommand(InfoCommand());
|
|
||||||
// _registerCommand(TestCommand());
|
|
||||||
// _registerCommand(CleanCommand());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 注册单个命令
|
|
||||||
void _registerCommand(BaseCommand command) {
|
|
||||||
_commands[command.name] = command;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 运行CLI应用程序
|
|
||||||
Future<int> run(List<String> arguments) async {
|
|
||||||
try {
|
|
||||||
_showBanner();
|
|
||||||
|
|
||||||
if (arguments.isEmpty ||
|
|
||||||
arguments.first == 'help' ||
|
|
||||||
arguments.first == '--help') {
|
|
||||||
_showHelp();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
final commandName = arguments.first;
|
|
||||||
final commandArgs =
|
|
||||||
arguments.length > 1 ? arguments.sublist(1) : <String>[];
|
|
||||||
|
|
||||||
// 检查特殊命令
|
|
||||||
if (commandName == 'version' || commandName == '--version') {
|
|
||||||
_showVersion();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 查找并执行命令
|
|
||||||
final command = _commands[commandName];
|
|
||||||
if (command == null) {
|
|
||||||
print('❌ 未知命令: $commandName');
|
|
||||||
print('');
|
|
||||||
_showAvailableCommands();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查命令帮助
|
|
||||||
if (commandArgs.contains('--help') || commandArgs.contains('-h')) {
|
|
||||||
command.showHelp();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 执行命令
|
|
||||||
final stopwatch = Stopwatch()..start();
|
|
||||||
final exitCode = await command.execute(commandArgs);
|
|
||||||
stopwatch.stop();
|
|
||||||
|
|
||||||
// 显示执行时间
|
|
||||||
if (exitCode == 0) {
|
|
||||||
print('');
|
|
||||||
print('⏱️ 执行时间: ${StringUtils.formatDuration(stopwatch.elapsed)}');
|
|
||||||
}
|
|
||||||
|
|
||||||
return exitCode;
|
|
||||||
} catch (error, stackTrace) {
|
|
||||||
print('❌ 应用程序错误: $error');
|
|
||||||
print('堆栈跟踪: $stackTrace');
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示应用程序横幅
|
|
||||||
void _showBanner() {
|
|
||||||
print('');
|
|
||||||
print('🚀 Swagger API 代码生成器 v2.0');
|
|
||||||
print('=====================================');
|
|
||||||
print('强大的 Swagger API 代码生成工具');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示帮助信息
|
|
||||||
void _showHelp() {
|
|
||||||
print('用法: dart swagger_cli_new.dart <命令> [选项]');
|
|
||||||
print('');
|
|
||||||
print('全新的命令式架构,提供更好的可扩展性和用户体验。');
|
|
||||||
print('');
|
|
||||||
_showAvailableCommands();
|
|
||||||
_showGlobalOptions();
|
|
||||||
_showExamples();
|
|
||||||
_showContact();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示可用命令
|
|
||||||
void _showAvailableCommands() {
|
|
||||||
print('📋 可用命令:');
|
|
||||||
print('');
|
|
||||||
|
|
||||||
for (final command in _commands.values) {
|
|
||||||
print(' ${command.name.padRight(12)} ${command.description}');
|
|
||||||
}
|
|
||||||
|
|
||||||
print(' help 显示帮助信息');
|
|
||||||
print(' version 显示版本信息');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示全局选项
|
|
||||||
void _showGlobalOptions() {
|
|
||||||
print('🔧 全局选项:');
|
|
||||||
print(' -h, --help 显示帮助信息');
|
|
||||||
print(' --version 显示版本信息');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示使用示例
|
|
||||||
void _showExamples() {
|
|
||||||
print('💡 使用示例:');
|
|
||||||
print('');
|
|
||||||
print(' # 生成所有文件');
|
|
||||||
print(' dart swagger_cli_new.dart generate --all');
|
|
||||||
print('');
|
|
||||||
print(' # 只生成模型文件(简洁版本)');
|
|
||||||
print(' dart swagger_cli_new.dart generate --models --simple');
|
|
||||||
print('');
|
|
||||||
print(' # 生成到指定目录并启用性能监控');
|
|
||||||
print(
|
|
||||||
' dart swagger_cli_new.dart generate --all --output-dir lib/generated --performance',
|
|
||||||
);
|
|
||||||
print('');
|
|
||||||
print(' # 查看具体命令的帮助');
|
|
||||||
print(' dart swagger_cli_new.dart generate --help');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示联系信息
|
|
||||||
void _showContact() {
|
|
||||||
print('🌐 更多信息:');
|
|
||||||
print(' API文档: ${SwaggerConfig.swaggerJsonUrl}');
|
|
||||||
print(' 基础URL: ${SwaggerConfig.baseUrl}');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 显示版本信息
|
|
||||||
void _showVersion() {
|
|
||||||
print('Swagger CLI v2.0.0');
|
|
||||||
print('构建于: ${DateTime.now().toIso8601String()}');
|
|
||||||
print('Dart SDK: ${Platform.version}');
|
|
||||||
print('');
|
|
||||||
print('功能特性:');
|
|
||||||
print('- 🏗️ 模块化命令架构');
|
|
||||||
print('- 🚀 性能监控和优化');
|
|
||||||
print('- 🔍 智能类型验证');
|
|
||||||
print('- 📋 详细的错误报告');
|
|
||||||
print('- 💾 智能缓存机制');
|
|
||||||
print('- 📚 丰富的文档生成');
|
|
||||||
print('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 格式化持续时间
|
|
||||||
// 已移动到 StringUtils.formatDuration
|
|
||||||
|
|
||||||
/// 获取可用命令列表
|
|
||||||
List<String> get availableCommands => _commands.keys.toList();
|
|
||||||
|
|
||||||
/// 获取特定命令
|
|
||||||
BaseCommand? getCommand(String name) => _commands[name];
|
|
||||||
}
|
|
||||||
|
|
||||||
/// CLI应用程序入口点
|
|
||||||
Future<void> main(List<String> arguments) async {
|
|
||||||
final cli = SwaggerCLI();
|
|
||||||
final exitCode = await cli.run(arguments);
|
|
||||||
exit(exitCode);
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
name: swagger_generator_flutter
|
name: swagger_generator_flutter
|
||||||
description: A Flutter project using generated API models
|
description: A Flutter project using generated API models
|
||||||
|
|
||||||
version: 2.0.0+2
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.0 <4.0.0'
|
sdk: '>=3.0.0 <4.0.0'
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue