trait Middleware[-R, +E, +AIn, -BIn, -AOut, +BOut] extends AnyRef
Middlewares are essentially transformations that one can apply on any Http to produce a new one. They can modify requests and responses and also transform them into more concrete domain entities.
You can think of middlewares as a functions —
type Middleware[R, E, AIn, BIn, AOut, BOut] = Http[R, E, AIn, BIn] => Http[R, E, AOut, BOut]
The AIn and BIn type params represent the type params of the input Http.
The AOut and BOut type params represent the type params of the output
Http.
- Self Type
- Middleware[R, E, AIn, BIn, AOut, BOut]
- Alphabetic
- By Inheritance
- Middleware
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
++[R1 <: R, E1 >: E, A0 >: AIn <: AOut, B0 >: BOut <: BIn](other: Middleware[R1, E1, A0, B0, A0, B0]): Middleware[R1, E1, A0, B0, A0, B0]
Combines two middleware that don't modify the input and output types.
-
final
def
<>[R1 <: R, E1, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0 >: BOut](other: Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]
Applies self but if it fails, applies other.
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
>>>[R1 <: R, E1 >: E, AIn1 <: AOut, BIn1 >: BOut, AOut1, BOut1](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn, BIn, AOut1, BOut1]
Creates a new middleware that passes the output Http of the current middleware as the input to the provided middleware.
-
final
def
andThen[R1 <: R, E1 >: E, AIn1 <: AOut, BIn1 >: BOut, AOut1, BOut1](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn, BIn, AOut1, BOut1]
Composes one middleware with another.
-
final
def
as[BOut0](bout: BOut0): Middleware[R, E, AIn, BIn, AOut, BOut0]
Makes the middleware resolve with a constant Middleware
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
combine[R1 <: R, E1 >: E, A0 >: AIn <: AOut, B0 >: BOut <: BIn](other: Middleware[R1, E1, A0, B0, A0, B0]): Middleware[R1, E1, A0, B0, A0, B0]
Combines two middleware that operate on the same input and output types, into one.
-
final
def
contramap[AOut0](f: (AOut0) ⇒ AOut): Middleware[R, E, AIn, BIn, AOut0, BOut]
Preprocesses the incoming value for the outgoing Http.
-
final
def
contramapZIO[AOut0]: PartialContraMapZIO[R, E, AIn, BIn, AOut, BOut, AOut0]
Preprocesses the incoming value using a ZIO, for the outgoing Http.
-
final
def
delay(duration: zio.Duration): Middleware[R, E, AIn, BIn, AOut, BOut]
Delays the production of Http output for the specified duration
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
flatMap[R1 <: R, E1 >: E, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0](f: (BOut) ⇒ Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]
Creates a new Middleware from another
-
final
def
flatten[R1 <: R, E1 >: E, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0](implicit ev: <:<[BOut, Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]
Flattens an Middleware of a Middleware
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
map[BOut0](f: (BOut) ⇒ BOut0): Middleware[R, E, AIn, BIn, AOut, BOut0]
Transforms the output type of the current middleware.
-
final
def
mapZIO[R1 <: R, E1 >: E, BOut0](f: (BOut) ⇒ ZIO[R1, E1, BOut0]): Middleware[R1, E1, AIn, BIn, AOut, BOut0]
Transforms the output type of the current middleware using effect function.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
orElse[R1 <: R, E1, AIn0 >: AIn, BIn0 <: BIn, AOut0 <: AOut, BOut0 >: BOut](other: Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]): Middleware[R1, E1, AIn0, BIn0, AOut0, BOut0]
Applies self but if it fails, applies other.
-
final
def
race[R1 <: R, E1 >: E, AIn1 >: AIn, BIn1 <: BIn, AOut1 <: AOut, BOut1 >: BOut](other: Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]): Middleware[R1, E1, AIn1, BIn1, AOut1, BOut1]
Race between current and other, cancels other when execution of one completes
- final def runAfter[R1 <: R, E1 >: E](effect: ZIO[R1, E1, Any]): Middleware[R1, E1, AIn, BIn, AOut, BOut]
- final def runBefore[R1 <: R, E1 >: E](effect: ZIO[R1, E1, Any]): Middleware[R1, E1, AIn, BIn, AOut, BOut]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
when[AOut0 <: AOut](cond: (AOut0) ⇒ Boolean)(implicit ev: IsMono[AIn, BIn, AOut0, BOut]): Middleware[R, E, AIn, BIn, AOut0, BOut]
Applies Middleware based only if the condition function evaluates to true
-
final
def
whenZIO[R1 <: R, E1 >: E, AOut0 <: AOut](cond: (AOut0) ⇒ ZIO[R1, E1, Boolean])(implicit ev: IsMono[AIn, BIn, AOut0, BOut]): Middleware[R1, E1, AIn, BIn, AOut0, BOut]
Applies Middleware based only if the condition effectful function evaluates to true