diff --git a/docs/reference/configs.md b/docs/reference/configs.md new file mode 100644 index 0000000000..e574e74b27 --- /dev/null +++ b/docs/reference/configs.md @@ -0,0 +1,11 @@ +--- +id: configs +title: Config Reference +--- + +This is a listing of all ZIO HTTP Configs and their options. + +```scala mdoc:passthrough +import zio.http.docs.ConfigReference +println(ConfigReference.build()) +``` diff --git a/zio-http-docs/src/main/scala/zio/http/docs/ConfigReference.scala b/zio-http-docs/src/main/scala/zio/http/docs/ConfigReference.scala new file mode 100644 index 0000000000..ce5f4b8994 --- /dev/null +++ b/zio-http-docs/src/main/scala/zio/http/docs/ConfigReference.scala @@ -0,0 +1,35 @@ +package zio.http.docs + +import zio.config.generateDocs +import zio._ + +object ConfigReference { + private type ObjectWithConfig = Object{def config: Config[Any]} + + private val configs = + Seq[ObjectWithConfig]( + http.netty.NettyConfig, + http.netty.NettyConfig.LeakDetectionLevel, + http.ConnectionPoolConfig, + http.Decompression, + http.DnsResolver.Config, + http.DnsResolver.ExpireAction, + http.Proxy, + http.Server.Config, + http.URL, + // http.ZClient.Config, // TODO: causes stack overflow + // http.gen.openapi.Config, // TODO + ).map { obj => ( + obj.getClass.getName.stripSuffix("$").replace("$", "."), + obj.config + ) } + + def build(): String = { + configs.map(item => { + val (name, config) = item + + s"# ${name}.config\n" + + generateDocs(config).toTable.toGithubFlavouredMarkdown + }).mkString("\n") + } +}