helics-wai-0.4.0: src/Network/Helics/Wai.hs
module Network.Helics.Wai
( Safe.HelicsMiddlewareConfig(..)
-- * middleware
, helics
, dummyHelics
-- * getter
, transactionId
, lookupTransactionId
-- * reexports
, def
) where
import Network.Wai
import Network.Helics
import qualified Network.Helics.Wai.Safe as Safe
import qualified Data.Vault.Lazy as V
import System.IO.Unsafe
tidKey :: V.Key TransactionId
tidKey = unsafePerformIO V.newKey
{-# NOINLINE tidKey #-}
-- | helics middleware.
helics :: Safe.HelicsMiddlewareConfig -> Middleware
helics = Safe.helics tidKey
dummyHelics :: Middleware
dummyHelics = Safe.dummyHelics tidKey
-- | get TransactionId from request.
transactionId :: Request -> TransactionId
transactionId = Safe.transactionId tidKey
lookupTransactionId :: Request -> Maybe TransactionId
lookupTransactionId = Safe.lookupTransactionId tidKey