packages feed

helics-wai-0.2.0: src/Network/Helics/Wai.hs

module Network.Helics.Wai (helics, transactionId) 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 :: Middleware
helics = Safe.helics tidKey

-- | get TransactionId from request.
transactionId :: Request -> TransactionId
transactionId = Safe.transactionId tidKey