{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
module JavaScript.Web.StorageEvent ( StorageEvent
, key
, oldValue
, newValue
, url
, storageArea
) where
import Data.JSString
import Data.JSString.Internal.Type
import GHCJS.Types
import JavaScript.Web.Storage.Internal
key :: StorageEvent -> Maybe JSString
key se | isNull r = Nothing
| otherwise = Just (JSString r)
where
r = js_getKey se
{-# INLINE key #-}
oldValue :: StorageEvent -> Maybe JSString
oldValue se | isNull r = Nothing
| otherwise = Just (JSString r)
where
r = js_getOldValue se
{-# INLINE oldValue #-}
newValue :: StorageEvent -> Maybe JSString
newValue se | isNull r = Nothing
| otherwise = Just (JSString r)
where
r = js_getNewValue se
{-# INLINE newValue #-}
url :: StorageEvent -> JSString
url se = js_getUrl se
{-# INLINE url #-}
storageArea :: StorageEvent -> Maybe Storage
storageArea se | isNull r = Nothing
| otherwise = Just (Storage r)
where
r = js_getStorageArea se
{-# INLINE storageArea #-}
foreign import javascript unsafe
"$1.key" js_getKey :: StorageEvent -> JSVal
foreign import javascript unsafe
"$1.oldValue" js_getOldValue :: StorageEvent -> JSVal
foreign import javascript unsafe
"$1.newValue" js_getNewValue :: StorageEvent -> JSVal
foreign import javascript unsafe
"$1.url" js_getUrl :: StorageEvent -> JSString
foreign import javascript unsafe
"$1.storageArea" js_getStorageArea :: StorageEvent -> JSVal