Library allows setting, getting and deleting cookies.
Examples:
import Web.Cookies
import Data.Options (options, (:=))
import Data.DateTime (DateTime(..), Month(..), Time(..), canonicalDate)
import Data.JSDate (fromDateTime)
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Data.Enum (toEnum)
import Data.Maybe (Maybe(..), fromJust)
import Partial.Unsafe (unsafePartial)
setcook :: forall a b eff. a -> b -> Control.Monad.Eff.Eff (cookie :: COOKIE | eff) Prelude.Unit
setcook event element = do
let enumYear = unsafePartial fromJust <<< toEnum
enumDay = unsafePartial fromJust <<< toEnum
enumHour = unsafePartial fromJust <<< toEnum
enumMin = unsafePartial fromJust <<< toEnum
enumSec = unsafePartial fromJust <<< toEnum
enumMilis = unsafePartial fromJust <<< toEnum
-- Options for the cookies.
-- See details here: https://github.com/paf31/24-days-of-purescript-2014/blob/master/21.markdown
let opts = path := "mypath"
<> domain := "mydomain"
<> secure := true
<> expires := fromDateTime (DateTime (canonicalDate (enumYear 2017) March (enumDay 26))
(Time (enumHour 12) (enumMin 0) (enumSec 0) (enumMilis 0)))
setCookie "mycookie" 123 (Just opts)
setSimpleCookie "simpleCookie" "NoOptions"
getcook :: forall a b eff. a -> b -> Control.Monad.Eff.Eff (cookie :: COOKIE, console :: Control.Monad.Eff.Console.CONSOLE | eff) Prelude.Unit
getcook event element = do
cook <- getCookie "mycookie"
log cook
cook2 <- getCookie "simpleCookie"
log cook2
Purescript-cookies version 0.2.0 was stable enough. Version 0.3.0 is work in progress. The API will not change, but bugs have to be found and fixed.