Skip to content

Commit

Permalink
Release 0.19.0-M2
Browse files Browse the repository at this point in the history
  • Loading branch information
adamw committed Jul 19, 2021
1 parent b5a4b0f commit 1e96f26
Show file tree
Hide file tree
Showing 22 changed files with 71 additions and 59 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ tapir documentation is available at [tapir.softwaremill.com](http://tapir.softwa
Add the following dependency:

```sbt
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.19.0-M2"
```

You'll need partial unification enabled in the compiler (alternatively, you'll need to manually provide type arguments in some cases):
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/client/http4s.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-http4s-client" % "0.19.0-M2"
```

To interpret an endpoint definition as an `org.http4s.Request[F]`, import:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/client/play.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-play-client" % "0.19.0-M2"
```

To make requests using an endpoint definition using the [play client](https://github.com/playframework/play-ws), import:
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/client/sttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Add the dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-sttp-client" % "0.19.0-M2"
```

To make requests using an endpoint definition using the [sttp client](https://github.com/softwaremill/sttp), import:
Expand Down Expand Up @@ -57,7 +57,7 @@ In this case add the following dependencies (note the [`%%%`](https://www.scala-
instead of the usual `%%`):

```scala
"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %%% "tapir-sttp-client" % "0.19.0-M2"
"io.github.cquiroz" %%% "scala-java-time" % "2.2.0" // implementations of java.time classes for Scala.JS
```

Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/docs/asyncapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
To use, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-docs" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-asyncapi-circe-yaml" % "0.19.0-M2"
```

Tapir contains a case class-based model of the asyncapi data structures in the `asyncapi/asyncapi-model` subproject (the
Expand Down
24 changes: 13 additions & 11 deletions generated-doc/out/docs/openapi.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
To use, add the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-docs" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-openapi-circe-yaml" % "0.19.0-M2"
```

Tapir contains a case class-based model of the openapi data structures in the `openapi/openapi-model` subproject (the
Expand Down Expand Up @@ -133,29 +133,29 @@ akka-http/http4s routes for exposing documentation using [Swagger UI](https://sw

```scala
// Akka HTTP
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-akka-http" % "0.19.0-M2"

// Finatra
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-finatra" % "0.19.0-M2"

// HTTP4S
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-http4s" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-http4s" % "0.19.0-M2"

// Play
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-play" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-redoc-play" % "0.19.0-M2"

// Vert.x
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-vertx" % "0.19.0-M2"
```

Note: `tapir-swagger-ui-akka-http` transitively pulls some Akka modules in version 2.6. If you want to force
your own Akka version (for example 2.5), use sbt exclusion. Mind the Scala version in artifact name:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.19.0-M1" exclude("com.typesafe.akka", "akka-stream_2.12")
"com.softwaremill.sttp.tapir" %% "tapir-swagger-ui-akka-http" % "0.19.0-M2" exclude("com.typesafe.akka", "akka-stream_2.12")
```

Usage example for akka-http:
Expand All @@ -180,6 +180,8 @@ For Play, use `SwaggerPlay` or `RedocPlay` classes.

For Vert.x, use `SwaggerVertx` class.

For zio-http, use `SwaggerZioHttp` class.

### Using with sbt-assembly

The `tapir-swagger-ui-*` modules rely on a file in the `META-INF` directory tree, to determine the version of the Swagger UI.
Expand Down
10 changes: 5 additions & 5 deletions generated-doc/out/endpoint/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The `tapir-cats` module contains additional instances for some [cats](https://ty
datatypes as well as additional syntax:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-cats" % "0.19.0-M2"
```

- `import sttp.tapir.integ.cats.codec._` - brings schema, validator and codec instances
Expand All @@ -19,7 +19,7 @@ If you use [refined](https://github.com/fthomas/refined), the `tapir-refined` mo
validators for `T Refined P` as long as a codec for `T` already exists:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-refined" % "0.19.0-M2"
```

You'll need to extend the `sttp.tapir.codec.refined.TapirCodecRefined`
Expand All @@ -40,7 +40,7 @@ The `tapir-enumeratum` module provides schemas, validators and codecs for [Enume
enumerations. To use, add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-enumeratum" % "0.19.0-M2"
```

Then, `import sttp.tapir.codec.enumeratum`, or extends the `sttp.tapir.codec.enumeratum.TapirCodecEnumeratum` trait.
Expand Down Expand Up @@ -78,7 +78,7 @@ If you use [scala-newtype](https://github.com/estatico/scala-newtype), the `tapi
schemas for a types with a `@newtype` and `@newsubtype` annotations as long as a codec and schema for its underlying value already exists:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-newtype" % "0.19.0-M2"
```

Then, `import sttp.tapir.codec.newtype._`, or extend the `sttp.tapir.codec.enumeratum.TapirCodecNewType` trait to bring the implicit values into scope.
Expand All @@ -90,7 +90,7 @@ For details refer to [derevo documentation](https://github.com/tofu-tf/derevo#in
To use, add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-derevo" % "0.19.0-M2"
```

Then you can derive schema for your ADT along with other typeclasses besides ADT declaration itself:
Expand Down
16 changes: 8 additions & 8 deletions generated-doc/out/endpoint/json.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ the json codec that is in scope.
To use Circe, add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-circe" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonCirce` trait, see [MyTapir](../mytapir.md)):
Expand Down Expand Up @@ -95,7 +95,7 @@ Now the above JSON object will render as
To use µPickle add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-upickle" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonuPickle` trait, see [MyTapir](../mytapir.md) and add `TapirJsonuPickle` not `TapirCirceJson`):
Expand Down Expand Up @@ -130,7 +130,7 @@ For more examples, including making a custom encoder/decoder, see [TapirJsonuPic
To use Play JSON add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-play" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonPlay` trait, see [MyTapir](../mytapir.md) and add `TapirJsonPlay` not `TapirCirceJson`):
Expand All @@ -146,7 +146,7 @@ Play JSON requires `Reads` and `Writes` implicit values in scope for each type y
To use Spray JSON add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-spray" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonSpray` trait, see [MyTapir](../mytapir.md) and add `TapirJsonSpray` not `TapirCirceJson`):
Expand All @@ -162,7 +162,7 @@ Spray JSON requires a `JsonFormat` implicit value in scope for each type you wan
To use Tethys JSON add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-tethys" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonTethys` trait, see [MyTapir](../mytapir.md) and add `TapirJsonTethys` not `TapirCirceJson`):
Expand All @@ -178,7 +178,7 @@ Tethys JSON requires `JsonReader` and `JsonWriter` implicit values in scope for
To use [Jsoniter-scala](https://github.com/plokhotnyuk/jsoniter-scala) add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-jsoniter-scala" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-jsoniter-scala" % "0.19.0-M2"
```

Next, import the package (or extend the `TapirJsonJsoniter` trait, see [MyTapir](../mytapir.md) and add `TapirJsonJsoniter` not `TapirCirceJson`):
Expand All @@ -195,7 +195,7 @@ Jsoniter Scala requires `JsonValueCodec` implicit value in scope for each type y
To use [json4s](https://github.com/json4s/json4s) add the following dependencies to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-json4s" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-json4s" % "0.19.0-M2"
```

And one of the implementations:
Expand Down Expand Up @@ -226,7 +226,7 @@ implicit val formats: Formats = org.json4s.jackson.Serialization.formats(NoTypeH
To use Zio JSON, add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-json-zio" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-json-zio" % "0.19.0-M2"
```
Next, import the package (or extend the `TapirJsonZio` trait, see [MyTapir](../mytapir.md) and add `TapirJsonZio` instead of `TapirCirceJson`):

Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/endpoint/zio.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ exposing the endpoints using the [http4s](https://http4s.org) server.
You'll need the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-zio" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-zio" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-zio-http4s-server" % "0.19.0-M2"
```

Next, instead of the usual `import sttp.tapir._`, you should import (or extend the `ZTapir` trait, see [MyTapir](../mytapir.md)):
Expand Down
1 change: 1 addition & 0 deletions generated-doc/out/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ The [`examples`](https://github.com/softwaremill/tapir/tree/master/examples/src/
* [ZIO example, using http4s](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/ZioExampleHttp4sServer.scala)
* [ZIO example with environment, using http4s](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/ZioEnvExampleHttp4sServer.scala)
* [ZIO partial server logic example, using http4s](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/ZioPartialServerLogicHttp4s.scala)
* [ZIO example using ZIO http](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/ZioExampleZioHttpServer.scala)
* [Streaming body, using akka-http](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/StreamingAkkaServer.scala)
* [Streaming body, using http4s + fs2](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/StreamingHttp4sFs2Server.scala)
* [Web sockets server, using akka-http](https://github.com/softwaremill/tapir/blob/master/examples/src/main/scala/sttp/tapir/examples/WebSocketAkkaServer.scala)
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/generator/sbt-openapi-codegen.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
Add the sbt plugin to the `project/plugins.sbt`:

```scala
addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.19.0-M1")
addSbtPlugin("com.softwaremill.sttp.tapir" % "sbt-openapi-codegen" % "0.19.0-M2")
```

Enable the plugin for your project in the `build.sbt`:
Expand Down
2 changes: 1 addition & 1 deletion generated-doc/out/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
To use tapir, add the following dependency to your project:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-core" % "0.19.0-M2"
```

This will import only the core classes needed to create endpoint descriptions. To generate a server or a client, you
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/server/akkahttp.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ To expose an endpoint as an [akka-http](https://doc.akka.io/docs/akka-http/curre
dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.19.0-M2"
```

This will transitively pull some Akka modules in version 2.6. If you want to force
your own Akka version (for example 2.5), use sbt exclusion. Mind the Scala version in artifact name:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.19.0-M1" exclude("com.typesafe.akka", "akka-stream_2.12")
"com.softwaremill.sttp.tapir" %% "tapir-akka-http-server" % "0.19.0-M2" exclude("com.typesafe.akka", "akka-stream_2.12")
```

Now import the object:
Expand Down
6 changes: 3 additions & 3 deletions generated-doc/out/server/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ To implement the Lambda function, a server interpreter is available, which takes
Currently, only an interpreter integrating with cats-effect is available (`AwsCatsEffectServerInterpreter`). To use, add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-aws-lambda" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-aws-lambda" % "0.19.0-M2"
```

To configure API Gateway and the Lambda function, you can use:
Expand All @@ -24,8 +24,8 @@ To configure API Gateway and the Lambda function, you can use:
Add one of the following dependencies:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-aws-sam" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-aws-terraform" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-aws-sam" % "0.19.0-M2"
"com.softwaremill.sttp.tapir" %% "tapir-aws-terraform" % "0.19.0-M2"
```

## Examples
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/server/finatra.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ To expose an endpoint as an [finatra](https://twitter.github.io/finatra/) server
dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server" % "0.19.0-M2"
```

and import the object:
Expand All @@ -16,7 +16,7 @@ import sttp.tapir.server.finatra.FinatraServerInterpreter
or if you would like to use cats-effect project, you can add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server-cats" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-finatra-server-cats" % "0.19.0-M2"
```

and import the object:
Expand Down
4 changes: 3 additions & 1 deletion generated-doc/out/server/http4s.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ To expose an endpoint as an [http4s](https://http4s.org) server, first add the f
dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-http4s-server" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-http4s-server" % "0.19.0-M2"
```

and import the object:
Expand Down Expand Up @@ -108,9 +108,11 @@ configuration:
import cats.effect._
import sttp.tapir.server.http4s.{Http4sServerInterpreter, Http4sServerOptions}
import sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandler
import sttp.tapir.server.interceptor.reject.RejectInterceptor
import sttp.tapir.server.interceptor.exception.DefaultExceptionHandler

implicit val options: Http4sServerOptions[IO, IO] = Http4sServerOptions.customInterceptors[IO, IO](
rejectInterceptor = Some(RejectInterceptor.default),
exceptionHandler = Some(DefaultExceptionHandler),
serverLog = Some(Http4sServerOptions.Log.defaultServerLog),
decodeFailureHandler = DefaultDecodeFailureHandler(
Expand Down
4 changes: 2 additions & 2 deletions generated-doc/out/server/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ val labels = MetricLabels(
Add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-prometheus-metrics" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-prometheus-metrics" % "0.19.0-M2"
```

`PrometheusMetrics` encapsulates `CollectorReqistry` and `Metric` instances. It provides several ready to use metrics as
Expand Down Expand Up @@ -122,7 +122,7 @@ val prometheusMetrics = PrometheusMetrics[Future]("tapir", CollectorRegistry.def
Add the following dependency:

```scala
"com.softwaremill.sttp.tapir" %% "tapir-opentelemetry-metrics" % "0.19.0-M1"
"com.softwaremill.sttp.tapir" %% "tapir-opentelemetry-metrics" % "0.19.0-M2"
```

OpenTelemetry metrics are vendor-agnostic and can be exported using one
Expand Down
19 changes: 13 additions & 6 deletions generated-doc/out/server/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,26 @@ AkkaHttpServerInterpreter(customServerOptions)
Request interceptors intercept whole request, and are called once for each request. They can provide additional
endpoint interceptors, as well as modify the request, or the response.

The following request interceptors are provided by default (and if enabled, called in this order):

* the [metrics interceptor](observability.md), which by default is disabled
* the `RejectInterceptor`, which specifies what should be done when decoding the request has failed for all
interpreted endpoints. The default is to return a 405 (method not allowed), if there's at least one decode failure
on the method, and a "no-match" otherwise (which is handled in an intereprter-specific manner)

## Endpoint interceptors

An `EndpointInterceptor` allows intercepting the handling of a request by an endpoint, when either the endpoint's inputs
have been decoded successfully, or when decoding has failed.

There are three interceptors that are used by default, which are called in this order:
The following interceptors are used by default, and if enabled, called in this order:

1. exception interceptor
2. logging interceptor
3. decode failure handler interceptor
* exception interceptor
* logging interceptor
* decode failure handler interceptor

Note that while the request will be passed top-to-bottom (1->3), handling of the result will be done in opposite order
(3->1). E.g., if the result is a failed effect (an exception), it will first be logged by the logging interceptor, and
Note that while the request will be passed top-to-bottom, handling of the result will be done in opposite order.
E.g., if the result is a failed effect (an exception), it will first be logged by the logging interceptor, and
only later passed to the exception interceptor.

Using `customInterceptors` on the options companion object, it is possible to customise the built-in interceptors, as
Expand Down
Loading

0 comments on commit 1e96f26

Please sign in to comment.