serversession-frontend-wai 1.0 → 1.0.1
raw patch · 4 files changed
+23/−9 lines, 4 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Web.ServerSession.Frontend.Wai.Internal: instance KeyValue SessionMap
+ Web.ServerSession.Frontend.Wai: type family Value sess :: Type;
+ Web.ServerSession.Frontend.Wai: }
+ Web.ServerSession.Frontend.Wai.Internal: instance Web.ServerSession.Frontend.Wai.Internal.KeyValue Web.ServerSession.Core.Internal.SessionMap
+ Web.ServerSession.Frontend.Wai.Internal: type family Value sess :: Type;
+ Web.ServerSession.Frontend.Wai.Internal: }
- Web.ServerSession.Frontend.Wai: class IsSessionData sess => KeyValue sess where type family Key sess :: * type family Value sess :: *
+ Web.ServerSession.Frontend.Wai: class IsSessionData sess => KeyValue sess where {
- Web.ServerSession.Frontend.Wai: data ForceInvalidate :: *
+ Web.ServerSession.Frontend.Wai: data ForceInvalidate
- Web.ServerSession.Frontend.Wai: data State sto :: * -> *
+ Web.ServerSession.Frontend.Wai: data State sto
- Web.ServerSession.Frontend.Wai.Internal: class IsSessionData sess => KeyValue sess where type family Key sess :: * type family Value sess :: *
+ Web.ServerSession.Frontend.Wai.Internal: class IsSessionData sess => KeyValue sess where {
Files
- changelog.md +3/−0
- serversession-frontend-wai.cabal +14/−4
- src/Web/ServerSession/Frontend/Wai.hs +1/−1
- src/Web/ServerSession/Frontend/Wai/Internal.hs +5/−4
+ changelog.md view
@@ -0,0 +1,3 @@+# 1.0.1++* support GHC 9.0
serversession-frontend-wai.cabal view
@@ -1,19 +1,25 @@+cabal-version: >= 1.10 name: serversession-frontend-wai-version: 1.0+version: 1.0.1 license: MIT license-file: LICENSE author: Felipe Lessa <felipe.lessa@gmail.com>-maintainer: Felipe Lessa <felipe.lessa@gmail.com>+maintainer: Michael Xavier <michael@michaelxavier.net> synopsis: wai-session bindings for serversession. category: Web stability: Stable-cabal-version: >= 1.8 build-type: Simple homepage: https://github.com/yesodweb/serversession description: API docs and the README are available at <http://www.stackage.org/package/serversession-frontend-wai> extra-source-files: README.md+ changelog.md +flag lib-Werror+ default: False+ manual: True+ library+ default-language: Haskell2010 hs-source-dirs: src build-depends: base >= 4.6 && < 5@@ -33,11 +39,15 @@ exposed-modules: Web.ServerSession.Frontend.Wai Web.ServerSession.Frontend.Wai.Internal- extensions:+ default-extensions: FlexibleContexts OverloadedStrings TypeFamilies ghc-options: -Wall+ if flag(lib-Werror)+ ghc-options: -Werror+ if impl(ghc >= 8.0.0)+ ghc-options: -Wno-redundant-constraints source-repository head type: git
src/Web/ServerSession/Frontend/Wai.hs view
@@ -6,7 +6,7 @@ -- @Max-age@ field is not supported by all browsers: some -- browsers will treat them as non-persistent cookies. ----- * Also, the @Max-age@ is fixed and does not take a given a+-- * Also, the @Max-age@ is fixed and does not take a given -- session into consideration. module Web.ServerSession.Frontend.Wai ( -- * Simple interface
src/Web/ServerSession/Frontend/Wai/Internal.hs view
@@ -10,11 +10,12 @@ , forceInvalidate ) where -import Control.Applicative ((<$>))+import Control.Applicative as A import Control.Monad (guard) import Control.Monad.IO.Class (MonadIO(..)) import Data.ByteString (ByteString) import Data.Default (def)+import Data.Kind (Type) import Data.Text (Text) import Web.PathPieces (toPathPiece) import Web.ServerSession.Core@@ -80,7 +81,7 @@ -- We need to use atomicModifyIORef instead of readIORef -- because latter may be reordered (cf. "Memory Model" on -- Data.IORef's documentation).- ( \k -> kvLookup k <$> liftIO (I.atomicModifyIORef' sessionRef $ \a -> (a, a))+ ( \k -> kvLookup k A.<$> liftIO (I.atomicModifyIORef' sessionRef $ \a -> (a, a)) , \k v -> liftIO (I.atomicModifyIORef' sessionRef $ flip (,) () . kvInsert k v) ) @@ -91,8 +92,8 @@ -- | Class for session data types that can be used as key-value -- stores. class IsSessionData sess => KeyValue sess where- type Key sess :: *- type Value sess :: *+ type Key sess :: Type+ type Value sess :: Type kvLookup :: Key sess -> sess -> Maybe (Value sess) kvInsert :: Key sess -> Value sess -> sess -> sess