packages feed

wai-middleware-brotli-0.1.0.0: app/Main.hs

{-# LANGUAGE OverloadedStrings #-}
module Main where

import Control.Concurrent
import Network.HTTP.Types.Status
import Network.Wai
import qualified Network.Wai.Middleware.Brotli as B
import Network.Wai.Handler.Warp
import Network.Wai.Application.Static
import Network.Wai.Middleware.Gzip

main :: IO ()
main = do
  let settings =
        B.defaultSettings
        {B.brotliFilesBehavior = B.BrotliPreCompressed (B.BrotliCacheFolder "."), B.brotliMinimumSize = 5}
      -- app = staticApp $ defaultFileServerSettings "."
      app = \req respond -> respond $ responseStream ok200 [("Content-Type", "text/wow")] $ \send flush -> do
        send "Hello"
        flush
        threadDelay 10000000
        send "World"

  runEnv 3000 (gzip def {- TODO replace gzip with zopfli -} $ B.brotli settings {- $ sdch sdchSettings -} $ app)