@@ -5,23 +5,22 @@ import scala.jdk.CollectionConverters._
5
5
import zio .http .gen .grpc ._
6
6
import zio .http .gen .scala .{Code , CodeGen }
7
7
8
+ import com .google .protobuf ._
8
9
import com .google .protobuf .compiler .PluginProtos .CodeGeneratorResponse
9
- import com .google .protobuf .{Descriptors , ExtensionRegistry }
10
10
import protocgen .{CodeGenApp , CodeGenRequest , CodeGenResponse }
11
- import scalapb .compiler .{DescriptorImplicits , ProtobufGenerator }
12
- import scalapb .options .Scalapb
11
+ import scalapb .compiler ._
13
12
14
13
object ZIOHttpGRPCGen extends CodeGenApp {
15
14
16
15
def process (request : CodeGenRequest ): CodeGenResponse =
17
16
ProtobufGenerator .parseParameters(request.parameter) match {
18
17
case Right (_) =>
19
18
val services = request.filesToGenerate.flatMap(fromProtobuf(_).files)
20
- val schemas = services.map(getImplicitSchemas(_) ).map { case (pkg, tpes) =>
19
+ val schemas = services.map(getImplicitSchemas).map { case (pkg, tpes) =>
21
20
schemasFile(pkg, tpes)
22
21
}
23
22
CodeGenResponse .succeed(
24
- schemas ++ services.map(fileToPluginCode(_) ),
23
+ schemas ++ services.map(fileToPluginCode),
25
24
Set (CodeGeneratorResponse .Feature .FEATURE_PROTO3_OPTIONAL ),
26
25
)
27
26
case Left (error) =>
@@ -55,7 +54,7 @@ object ZIOHttpGRPCGen extends CodeGenApp {
55
54
val content =
56
55
s " package ${pkg.mkString(" ." )} \n object Schemas { \n " +
57
56
" import zio.schema.{DeriveSchema, Schema}\n " +
58
- tpes.distinct.map(tpeToSchema(_) ).mkString(" " ) +
57
+ tpes.distinct.map(tpeToSchema).mkString(" " ) +
59
58
" \n }"
60
59
b.setContent(content)
61
60
b.build
@@ -66,39 +65,36 @@ object ZIOHttpGRPCGen extends CodeGenApp {
66
65
}
67
66
68
67
def fromDescriptor (file : Descriptors .FileDescriptor ): Protobuf .File = {
69
- val deps = file
70
- .getDependencies()
71
- .asScala
72
- .toList
68
+ val deps = file.getDependencies.asScala.toList
73
69
.map(_.getName())
74
- val opt = file.getOptions()
75
- val pkg = if (opt.hasJavaPackage() && opt.getJavaPackage() != " " ) opt.getJavaPackage() else file.getPackage()
70
+ val opt = file.getOptions
71
+ val pkg = if (opt.hasJavaPackage && opt.getJavaPackage != " " ) opt.getJavaPackage else file.getPackage
76
72
val pkgPath = if (pkg == " " ) Nil else pkg.split('.' ).toList
77
73
val name0 =
78
- if (opt.hasJavaOuterClassname() && opt.getJavaOuterClassname() != " " ) opt.getJavaOuterClassname()
79
- else file.getName()
74
+ if (opt.hasJavaOuterClassname && opt.getJavaOuterClassname != " " ) opt.getJavaOuterClassname
75
+ else file.getName
80
76
val name = if (name0.endsWith(" .proto" )) name0.dropRight(6 ) else name0
81
77
82
78
def fromService (service : Descriptors .ServiceDescriptor ): Protobuf .Service =
83
79
Protobuf .Service (
84
- service.getName() ,
85
- service.getMethods.asScala.toList.map(fromMethod(_) ),
80
+ service.getName,
81
+ service.getMethods.asScala.toList.map(fromMethod),
86
82
)
87
83
88
84
def fromMethod (method : Descriptors .MethodDescriptor ): Protobuf .Method =
89
85
Protobuf .Method (
90
- method.getName() ,
91
- method.getInputType() .getName() ,
92
- method.getOutputType() .getName() ,
93
- method.isClientStreaming() ,
94
- method.isServerStreaming() ,
86
+ method.getName,
87
+ method.getInputType.getName,
88
+ method.getOutputType.getName,
89
+ method.isClientStreaming,
90
+ method.isServerStreaming,
95
91
)
96
92
97
93
Protobuf .File (
98
94
name,
99
95
pkgPath,
100
96
deps,
101
- file.getServices() .asScala.toList.map(fromService(_) ),
97
+ file.getServices.asScala.toList.map(fromService),
102
98
)
103
99
}
104
100
0 commit comments