Max
|
52a242f392
|
feat: 添加 CancelToken 请求取消支持 (v3.3.0)
新增功能:
- 可通过 cancel_token_support 配置启用
- 自动为所有 API 方法添加 @CancelRequest() CancelToken 参数
- 完全向后兼容,默认禁用
修改文件:
- lib/core/config_repository.dart: 添加 cancelTokenSupport getter
- lib/pipeline/generate/impl/retrofit_api/api_parameters.dart: 参数生成逻辑
- generator_config.template.yaml: 配置项说明
新增文档:
- CANCELTOKEN_USAGE_GUIDE.md: 使用指南
- CHANGELOG_CANCELTOKEN.md: 功能变更详情
测试:
- test/cancel_token_support_test.dart: 10 个单元测试
|
2026-01-31 00:25:29 +08:00 |
Max
|
07b9a8c2f5
|
fix:
- ✅ **强制添加前缀**:修复了当类名已包含前缀时不重复添加前缀的逻辑,确保 `SubjectInfo` 配置前缀 `S` 后生成 `SSubjectInfo`。
- ✅ **测试接口暴露**:为 `ConfigRepository` 添加 `setCachedConfig` 接口以便于测试。
|
2026-01-12 15:52:05 +08:00 |
Max
|
6a4a31b39b
|
feat: udpate
|
2026-01-12 15:28:54 +08:00 |
Max
|
111375b749
|
feat: 实现枚举配置文件映射和UNKNOWN枚举值
✨ 新功能
- 支持通过 generator_config.yaml 配置枚举键名映射
- 实现三级优先级:配置文件 > x-enum-varnames > 智能生成
- 自动为所有枚举添加 UNKNOWN 值(整数用-9999,字符串用'UNKNOWN')
- fromValue 方法改为返回 UNKNOWN 而不是抛异常,提供更好的容错性
🔧 核心修改
- lib/core/config_repository.dart: 添加 EnumKeyMapping 和 enumKeyMappings 解析
- lib/core/config.dart: 暴露枚举映射配置
- lib/pipeline/generate/impl/model/model_content_builders.dart: 实现三级优先级枚举生成和 UNKNOWN 值
- lib/core/models/api_schema.dart: 支持 x-enum-varnames 和 x-enum-descriptions 扩展字段
- lib/pipeline/generate/impl/retrofit_api/api_return_types.dart: 修复 BasePageResult 包裹逻辑
📚 文档更新
- 新增 ENUM_QUICK_REFERENCE.md: 快速参考指南
- 新增 ENUM_KEY_NAMES_USAGE.md: 详细使用指南
- 新增 ENUM_CONFIG_MAPPING_SUMMARY.md: 功能实现总结
- 新增 ENUM_KEY_NAMES_PROPOSAL.md: 技术提案
- 更新 README.md 和 CHANGELOG.md
- 更新 generator_config.template.yaml 添加配置示例
📦 示例文件
- example/swagger_enum_example.json: Swagger 扩展字段示例
- example/enum_config_mapping_example.yaml: 完整配置示例
✅ 测试验证
- test/pagination_wrapping_test.dart: BasePageResult 包裹测试
- 功能已通过实际生成测试验证
🎯 使用场景
1. 后端支持 OpenAPI 扩展 → 使用 x-enum-varnames
2. 后端不支持扩展 → 使用配置文件映射
3. 需要覆盖 Swagger → 使用配置文件映射
4. 快速原型开发 → 使用智能生成
|
2025-11-24 10:47:17 +08:00 |
Max
|
69aad6bda1
|
chore: release 3.0.0 – remove OptimizedRetrofitGenerator; consolidate on RetrofitApiGenerator; update docs and examples; fix QRCodeApi reference; improve ApiClient class-name extraction; bump version to 3.0.0; update CHANGELOG
|
2025-11-21 18:10:37 +08:00 |
Max
|
5f6c87ef67
|
feat: 添加文件头配置和文件跳过功能
主要变更:
- ✨ 新增文件头模板配置功能
- 支持通过 templates.file_header 自定义文件头格式
- 支持模板变量: {fileName}, {fileType}, {swaggerUrl}, {generatorName}, {author}, {copyright}
- 自动从 generator 配置读取生成器信息
- ✨ 新增文件跳过功能
- 支持 ignored_directories 配置,跳过指定目录下的所有文件
- 支持 ignored_files 配置,支持精确匹配和通配符匹配(*prefix, suffix*, *pattern*)
- 在所有文件生成点添加跳过检查
- ✨ 新增 ConfigLoader 配置加载器
- 统一管理配置文件读取
- 支持 YAML 配置解析
- 提供配置缓存机制
- 📝 更新配置文件
- 添加 templates 配置部分
- 添加 output.ignored_directories 和 output.ignored_files 配置
- 完善配置示例和注释
- 📚 添加文档
- FILE_HEADER_CONFIGURATION.md: 文件头配置功能文档
- CODE_REVIEW_REPORT.md: 代码审核报告
- 更新示例项目配置
- 🗑️ 清理代码
- 移除 ApiPaths 生成功能
- 删除旧的示例文件
- 精简项目结构
- 🔧 优化依赖
- 移除内部项目依赖(learning_officer_oa)
- 更新依赖版本
- 支持作为 dev_dependency 使用
|
2025-11-05 16:59:27 +08:00 |
Max
|
6b90225abd
|
chore: 发布版本 2.1.0
- 更新版本号至 2.1.0
- 添加 CHANGELOG.md 记录版本变更历史
|
2025-11-03 11:42:12 +08:00 |