feat: 增强 gRPC 支持,优化注册函数和导入处理逻辑

This commit is contained in:
Rogee
2025-09-22 10:00:25 +08:00
parent 1e98d0eaff
commit 0cfc573960
4 changed files with 70 additions and 7 deletions

View File

@@ -311,7 +311,23 @@ func Parse(source string) []Provider {
provider.Imports[modePkg] = ""
provider.ProviderGroup = "atom.GroupInitial"
provider.GrpcRegisterFunc = provider.ReturnType
// Handle gRPC register function correctly
if providerDoc.ReturnType != "" && strings.Contains(providerDoc.ReturnType, ".") {
// User specified a complete register function name, like userv1.RegisterUserServiceServer
provider.GrpcRegisterFunc = providerDoc.ReturnType
// Extract package information and add import
if pkgAlias := getTypePkgName(providerDoc.ReturnType); pkgAlias != "" {
if importPkg, ok := imports[pkgAlias]; ok {
provider.Imports[importPkg] = pkgAlias
}
}
} else {
// Generate default gRPC register function name
// Example: UserService -> RegisterUserServiceServer
provider.GrpcRegisterFunc = "Register" + strings.TrimPrefix(provider.ReturnType, "*") + "Server"
}
provider.ReturnType = "contracts.Initial"
provider.InjectParams["__grpc"] = InjectParam{