StaticFile

object StaticFile
class Object
trait Matchable
class Any

Value members

Concrete methods

def fromPath[F[_] : MonadThrow](f: Path, req: Option[Request[F]]): OptionT[F, Response[F]]
def fromPath[F[_] : MonadThrow](f: Path, req: Option[Request[F]], etagCalculator: Path => F[String]): OptionT[F, Response[F]]
def fromPath[F[_] : MonadThrow](f: Path, buffsize: Int, req: Option[Request[F]], etagCalculator: Path => F[String]): OptionT[F, Response[F]]
res)))))" class="documentableAnchor">
def res)))))" class="documentableName ">fromPath[F[_] : Files](f: Path, start: Long, end: Long, buffsize: Int, req: Option[Request[F]], etagCalculator: Path => F[String])(implicit evidence$21: Files[F], F: MonadError[F, Throwable]): OptionT[F, Response[F]]
augmentString(_$4).nonEmpty))).mkString("/") defgetResource(`name₂`:String):OptionT[F,URL]=OptionT.apply[F,URL](Sync.apply[F](evidence$3).blocking[Option[URL]](Option.apply[URL](loader.getResource(`name₂`)))) valgzUrl:OptionT[F,URL]=if(tryGzipped)getResource(normalizedName.+(".gz"))elseOptionT.none[F,URL](evidence$3) gzUrl.flatMap[Response[F]](((url:URL)=>fromURL[F](url,req)(evidence$3).map[Response[F]](((_$5:Response[F])=>_$5.removeHeader[Content-Type](headerInstance).putHeaders(modelledHeadersToRaw[Content-Encoding](Content-Encoding.apply(ContentCoding.gzip))(headerInstance),foldablesToRaw[[A>:Nothing<:Any]=>Option[A],Content-Type](nameToContentType(normalizedName))(catsTraverseForOption,((h:Content-Type)=>modelledHeadersToRaw[Content-Type](h)(headerInstance))))))(evidence$3)))(evidence$3).orElse(getResource(normalizedName).flatMap[Response[F]](((_$6:URL)=>fromURL[F](_$6,req)(evidence$3)))(evidence$3))(evidence$3) }" class="documentableAnchor">
def fromString[F[_] : MonadThrow](url: String, req: Option[Request[F]]): OptionT[F, Response[F]]
_$8.headers.get[If-Modified-Since](singleHeaders[If-Modified-Since](headerInstance)))) valexpired:Boolean=catsSyntaxTuple2Semigroupal[[A>:Nothing<:Any]=>Option[A],If-Modified-Since,HttpDate](Tuple2.apply[Option[If-Modified-Since],Option[HttpDate]](ifModifiedSince,lastmod)).mapN[Boolean](((_$9:If-Modified-Since,_$10:HttpDate)=>_$9.date.<(_$10)))(catsInstancesForOption,catsSemigroupalForOption).getOrElse[Boolean](true) if(expired){ vallen:Long=urlConn.getContentLengthLong() valheaders:Headers=Headers.apply(foldablesToRaw[[A>:Nothing<:Any]=>Option[A],Last-Modified](lastmod.map[Last-Modified](((_$11:HttpDate)=>Last-Modified.apply(_$11))))(catsTraverseForOption,((h:Last-Modified)=>modelledHeadersToRaw[Last-Modified](h)(headerInstance))),foldablesToRaw[[A>:Nothing<:Any]=>Option[A],Content-Type](nameToContentType(url.getPath()))(catsTraverseForOption,((`h₂`:Content-Type)=>modelledHeadersToRaw[Content-Type](`h₂`)(headerInstance))),if(len.>=(0))modelledHeadersToRaw[Content-Length](Content-Length.unsafeFromLong(len))(headerInstance)elsemodelledHeadersToRaw[Transfer-Encoding](Transfer-Encoding.apply(catsSyntaxApplicativeId[TransferCoding](TransferCoding.chunked).pure[[A>:Nothing<:Any]=>NonEmptyList[A]](catsDataInstancesForNonEmptyList)))(headerInstance)) catsSyntaxApplicativeError[F,Throwable,InputStream](F.blocking[InputStream](urlConn.getInputStream()))(F).redeem[Option[Response[F]]](recover=((x$1:Throwable)=>x$1match{ case_:FileNotFoundException=> None caseother=> throwother }),f=((inputStream:InputStream)=>Some.apply[Response[F]]({ valbody$1:Stream[F,Byte]=readInputStream[F](F.pure[InputStream](inputStream),DefaultBufferSize,package.readInputStream$default$3[F])(F) valstatus$1:Status=Response.apply$default$1[F] valhttpVersion$1:HttpVersion=Response.apply$default$2[F] valattributes$1:Vault=Response.apply$default$5[F] Response.apply[F](status$1,httpVersion$1,headers=headers,body=body$1,attributes$1) })))(F) }elsetoFunctorOps[F,Unit](catsSyntaxApplicativeError[F,Throwable,Unit](F.blocking[Unit](urlConn.getInputStream().close()))(F).handleError(((_$12:Throwable)=>()))(F))(F).as[Option[Response[F]]](Some.apply[Response[F]](Response.apply[F](NotModified,Response.apply$default$2[F],Response.apply$default$3[F],Response.apply$default$4[F],Response.apply$default$5[F]))) })) }" class="documentableAnchor">
def _$8.headers.get[If-Modified-Since](singleHeaders[If-Modified-Since](headerInstance)))) valexpired:Boolean=catsSyntaxTuple2Semigroupal[[A>:Nothing<:Any]=>Option[A],If-Modified-Since,HttpDate](Tuple2.apply[Option[If-Modified-Since],Option[HttpDate]](ifModifiedSince,lastmod)).mapN[Boolean](((_$9:If-Modified-Since,_$10:HttpDate)=>_$9.date.<(_$10)))(catsInstancesForOption,catsSemigroupalForOption).getOrElse[Boolean](true) if(expired){ vallen:Long=urlConn.getContentLengthLong() valheaders:Headers=Headers.apply(foldablesToRaw[[A>:Nothing<:Any]=>Option[A],Last-Modified](lastmod.map[Last-Modified](((_$11:HttpDate)=>Last-Modified.apply(_$11))))(catsTraverseForOption,((h:Last-Modified)=>modelledHeadersToRaw[Last-Modified](h)(headerInstance))),foldablesToRaw[[A>:Nothing<:Any]=>Option[A],Content-Type](nameToContentType(url.getPath()))(catsTraverseForOption,((`h₂`:Content-Type)=>modelledHeadersToRaw[Content-Type](`h₂`)(headerInstance))),if(len.>=(0))modelledHeadersToRaw[Content-Length](Content-Length.unsafeFromLong(len))(headerInstance)elsemodelledHeadersToRaw[Transfer-Encoding](Transfer-Encoding.apply(catsSyntaxApplicativeId[TransferCoding](TransferCoding.chunked).pure[[A>:Nothing<:Any]=>NonEmptyList[A]](catsDataInstancesForNonEmptyList)))(headerInstance)) catsSyntaxApplicativeError[F,Throwable,InputStream](F.blocking[InputStream](urlConn.getInputStream()))(F).redeem[Option[Response[F]]](recover=((x$1:Throwable)=>x$1match{ case_:FileNotFoundException=> None caseother=> throwother }),f=((inputStream:InputStream)=>Some.apply[Response[F]]({ valbody$1:Stream[F,Byte]=readInputStream[F](F.pure[InputStream](inputStream),DefaultBufferSize,package.readInputStream$default$3[F])(F) valstatus$1:Status=Response.apply$default$1[F] valhttpVersion$1:HttpVersion=Response.apply$default$2[F] valattributes$1:Vault=Response.apply$default$5[F] Response.apply[F](status$1,httpVersion$1,headers=headers,body=body$1,attributes$1) })))(F) }elsetoFunctorOps[F,Unit](catsSyntaxApplicativeError[F,Throwable,Unit](F.blocking[Unit](urlConn.getInputStream().close()))(F).handleError(((_$12:Throwable)=>()))(F))(F).as[Option[Response[F]]](Some.apply[Response[F]](Response.apply[F](NotModified,Response.apply$default$2[F],Response.apply$default$3[F],Response.apply$default$4[F],Response.apply$default$5[F]))) })) }" class="documentableName ">fromURL[F[_]](url: URL, req: Option[Request[F]])(implicit F: Sync[F]): OptionT[F, Response[F]]

Deprecated methods

@deprecated("Use calculateETag", "0.23.5")
def calcETag[F[_] : Functor]: File => F[String]
Deprecated
Source:
StaticFile.scala
@deprecated("Use fromPath", "0.23.5")
def fromFile[F[_] : MonadThrow](f: File, req: Option[Request[F]]): OptionT[F, Response[F]]
Deprecated
Source:
StaticFile.scala
@deprecated("Use fromPath", "0.23.5")
def fromFile[F[_] : MonadThrow](f: File, req: Option[Request[F]], etagCalculator: File => F[String]): OptionT[F, Response[F]]
Deprecated
Source:
StaticFile.scala
@deprecated("Use fromPath", "0.23.5")
def fromFile[F[_] : MonadThrow](f: File, buffsize: Int, req: Option[Request[F]], etagCalculator: File => F[String]): OptionT[F, Response[F]]
Deprecated
Source:
StaticFile.scala
@deprecated("Use fromPath", "0.23.5")
def fromFile[F[_] : Files](f: File, start: Long, end: Long, buffsize: Int, req: Option[Request[F]], etagCalculator: File => F[String])(implicit evidence$20: Files[F], F: MonadError[F, Throwable]): OptionT[F, Response[F]]
Deprecated
Source:
StaticFile.scala

Concrete fields