@@ -122,11 +122,19 @@ defmodule GRPC.Server do
122122
123123 defmacro __using__ ( opts ) do
124124 quote bind_quoted: [ opts: opts ] , location: :keep do
125+ opts =
126+ Keyword . validate! ( opts , [
127+ :service ,
128+ codecs: [ GRPC.Codec.Proto , GRPC.Codec.WebText , GRPC.Codec.JSON ] ,
129+ compressors: [ ] ,
130+ http_transcode: false
131+ ] )
132+
125133 service_mod = opts [ :service ]
126134 service_name = service_mod . __meta__ ( :name )
127- codecs = opts [ :codecs ] || [ GRPC.Codec.Proto , GRPC.Codec.WebText , GRPC.Codec.JSON ]
128- compressors = opts [ :compressors ] || [ ]
129- http_transcode = opts [ :http_transcode ] || false
135+ codecs = opts [ :codecs ]
136+ compressors = opts [ :compressors ]
137+ http_transcode = opts [ :http_transcode ]
130138
131139 codecs = if http_transcode , do: [ GRPC.Codec.JSON | codecs ] , else: codecs
132140
@@ -404,9 +412,10 @@ defmodule GRPC.Server do
404412 @ spec start_endpoint ( atom ( ) , non_neg_integer ( ) , Keyword . t ( ) ) ::
405413 { atom ( ) , any ( ) , non_neg_integer ( ) }
406414 def start_endpoint ( endpoint , port , opts \\ [ ] ) do
415+ opts = Keyword . validate! ( opts , adapter: GRPC.Server.Adapters.Cowboy )
416+ adapter = opts [ :adapter ]
407417 servers = endpoint . __meta__ ( :servers )
408418 servers = GRPC.Server . servers_to_map ( servers )
409- adapter = Keyword . get ( opts , :adapter ) || GRPC.Server.Adapters.Cowboy
410419 adapter . start ( endpoint , servers , port , opts )
411420 end
412421
@@ -422,15 +431,17 @@ defmodule GRPC.Server do
422431 @ doc false
423432 @ spec stop ( module ( ) | [ module ( ) ] , Keyword . t ( ) ) :: any ( )
424433 def stop ( servers , opts \\ [ ] ) do
425- adapter = Keyword . get ( opts , :adapter ) || GRPC.Server.Adapters.Cowboy
434+ opts = Keyword . validate! ( opts , adapter: GRPC.Server.Adapters.Cowboy )
435+ adapter = opts [ :adapter ]
426436 servers = GRPC.Server . servers_to_map ( servers )
427437 adapter . stop ( nil , servers )
428438 end
429439
430440 @ doc false
431441 @ spec stop_endpoint ( atom ( ) , Keyword . t ( ) ) :: any ( )
432442 def stop_endpoint ( endpoint , opts \\ [ ] ) do
433- adapter = Keyword . get ( opts , :adapter ) || GRPC.Server.Adapters.Cowboy
443+ opts = Keyword . validate! ( opts , adapter: GRPC.Server.Adapters.Cowboy )
444+ adapter = opts [ :adapter ]
434445 servers = endpoint . __meta__ ( :servers )
435446 servers = GRPC.Server . servers_to_map ( servers )
436447 adapter . stop ( endpoint , servers )
0 commit comments