yam 0.5.1 → 0.5.2
raw patch · 3 files changed
+23/−20 lines, 3 filesdep −unliftio-coredep −wai-extra
Dependencies removed: unliftio-core, wai-extra
Files
- README.md +0/−3
- src/Yam/Internal.hs +17/−7
- yam.cabal +6/−10
README.md view
@@ -1,8 +1,5 @@ # yam -[](https://hackage.haskell.org/package/yam)-[](https://travis-ci.org/leptonyu/yam)- Servant based Web Wrapper for Production in Haskell.
src/Yam/Internal.hs view
@@ -12,6 +12,7 @@ -- * Utilities , throwS , readConf+ , getLogger ) where import Control.Exception hiding (Handler)@@ -21,6 +22,7 @@ import GHC.Stack import Network.Wai.Handler.Warp (run) import Servant.Swagger+import System.IO.Unsafe (unsafePerformIO) import Yam.Logger import Yam.Swagger import Yam.Trace@@ -40,6 +42,19 @@ logErrorCS ?callStack msg lift $ throw e +{-# NOINLINE loggerKey #-}+loggerKey :: Key LogFunc+loggerKey = unsafePerformIO newKey++getLogger :: Env -> Maybe LogFunc+getLogger env =+ let trace :: Maybe TraceLog = getAttr traceKey env+ logger :: Maybe LogFunc = getAttr loggerKey env+ {-# INLINE nlf #-}+ nlf x (Just t) = addTrace x t+ nlf x _ = x+ in (`nlf` trace) <$> logger+ startYam :: forall api. (HasSwagger api, HasServer api '[Env]) => AppConfig@@ -54,7 +69,7 @@ = withLogger name logConfig $ do logInfo $ "Start Service [" <> name <> "] ..." logger <- askLoggerIO- (runAM $ foldr1 (<>) (traceMiddleware enableTrace : middlewares)) (Env L.empty Nothing ac) $ \(env, middleware) -> do+ (runAM $ foldr1 (<>) (traceMiddleware enableTrace : middlewares)) (Env (L.insert loggerKey logger L.empty) Nothing ac) $ \(env, middleware) -> do let cxt = env :. EmptyContext pCxt = Proxy :: Proxy '[Env] portText = showText port@@ -73,12 +88,7 @@ where {-# INLINE go #-} go :: App a -> App a- go b = do- let trace :: Maybe TraceLog = L.lookup traceKey v- withAppM (\(env,lf) -> (env { reqAttributes = Just v}, nlf lf trace)) b- {-# INLINE nlf #-}- nlf x (Just t) = addTrace x t- nlf x _ = x+ go = withAppM (\(env,lf) -> let env' = env { reqAttributes = Just v} in (env', fromMaybe lf $ getLogger env')) readConf :: (Default a, S.FromProperties a) => Text -> S.Properties -> a readConf k p = fromMaybe def $ S.lookup k p
yam.cabal view
@@ -4,13 +4,13 @@ -- -- see: https://github.com/sol/hpack ----- hash: 7dcbc1f022111b764d8abc3792f3a3aba5cd1e9dd501a85c2e76d07305d9899c+-- hash: 8354a1cbffc8b45ccba09be46e0df544e4e479ad6c5062ac6650d1187e8312ae name: yam-version: 0.5.1+version: 0.5.2 synopsis: Yam Web category: Web-homepage: https://github.com/leptonyu/yam#readme+homepage: https://github.com/leptonyu/yam/yam#readme author: Daniel YU maintainer: Daniel YU <leptonyu@gmail.com> copyright: (c) 2018 Daniel YU@@ -33,7 +33,7 @@ hs-source-dirs: src default-extensions: AutoDeriveTypeable BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DuplicateRecordFields DoAndIfThenElse EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MonadFailDesugaring MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PartialTypeSignatures PatternGuards PolyKinds RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators TypeSynonymInstances ViewPatterns- ghc-options: -Wall -optP-Wno-nonportable-include-path -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures+ ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures build-depends: aeson , base >=4.7 && <5@@ -49,7 +49,6 @@ , servant-swagger , servant-swagger-ui , text- , unliftio-core , vault , wai , warp@@ -62,7 +61,7 @@ hs-source-dirs: demo default-extensions: AutoDeriveTypeable BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DuplicateRecordFields DoAndIfThenElse EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MonadFailDesugaring MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PartialTypeSignatures PatternGuards PolyKinds RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators TypeSynonymInstances ViewPatterns- ghc-options: -Wall -optP-Wno-nonportable-include-path -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures+ ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures build-depends: aeson , base >=4.7 && <5@@ -78,10 +77,8 @@ , servant-swagger , servant-swagger-ui , text- , unliftio-core , vault , wai- , wai-extra , warp , yam default-language: Haskell2010@@ -101,7 +98,7 @@ test src default-extensions: AutoDeriveTypeable BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DuplicateRecordFields DoAndIfThenElse EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MonadFailDesugaring MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PartialTypeSignatures PatternGuards PolyKinds RankNTypes RecordWildCards ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeOperators TypeSynonymInstances ViewPatterns- ghc-options: -Wall -optP-Wno-nonportable-include-path -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures+ ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -fno-warn-orphans -fno-warn-missing-signatures build-depends: QuickCheck , aeson@@ -119,7 +116,6 @@ , servant-swagger , servant-swagger-ui , text- , unliftio-core , vault , wai , warp