packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/Storage.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from html (webref). Do not edit.
module JSDOM.Generated.Storage
       (clear, getItem, getItem_, getItemUnsafe, getItemUnchecked, key, key_, keyUnsafe, keyUnchecked, removeItem, setItem, getLength, Storage(..), gTypeStorage)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://developer.mozilla.org/docs/Web/API/Storage/clear MDN Storage.clear documentation>
clear :: (MonadDOM m) => Storage -> m ()
clear self = liftDOM (void (self ^. jsf "clear" ()))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/getItem MDN Storage.getItem documentation>
getItem :: (MonadDOM m, ToJSString key, FromJSString result) => Storage -> key -> m (Maybe result)
getItem self key = liftDOM (((self ^. jsf "getItem" [toJSVal key]) >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/getItem MDN Storage.getItem documentation>
getItem_ :: (MonadDOM m, ToJSString key) => Storage -> key -> m ()
getItem_ self key = liftDOM (void (self ^. jsf "getItem" [toJSVal key]))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/getItem MDN Storage.getItem documentation>
getItemUnsafe :: (MonadDOM m, ToJSString key, HasCallStack, FromJSString result) => Storage -> key -> m result
getItemUnsafe self key = liftDOM ((((self ^. jsf "getItem" [toJSVal key]) >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/getItem MDN Storage.getItem documentation>
getItemUnchecked :: (MonadDOM m, ToJSString key, FromJSString result) => Storage -> key -> m result
getItemUnchecked self key = liftDOM (((self ^. jsf "getItem" [toJSVal key]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/key MDN Storage.key documentation>
key :: (MonadDOM m, FromJSString result) => Storage -> Word -> m (Maybe result)
key self index = liftDOM (((self ^. jsf "key" [toJSVal index]) >>= fromMaybeJSString))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/key MDN Storage.key documentation>
key_ :: (MonadDOM m) => Storage -> Word -> m ()
key_ self index = liftDOM (void (self ^. jsf "key" [toJSVal index]))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/key MDN Storage.key documentation>
keyUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => Storage -> Word -> m result
keyUnsafe self index = liftDOM ((((self ^. jsf "key" [toJSVal index]) >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/key MDN Storage.key documentation>
keyUnchecked :: (MonadDOM m, FromJSString result) => Storage -> Word -> m result
keyUnchecked self index = liftDOM (((self ^. jsf "key" [toJSVal index]) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/removeItem MDN Storage.removeItem documentation>
removeItem :: (MonadDOM m, ToJSString key) => Storage -> key -> m ()
removeItem self key = liftDOM (void (self ^. jsf "removeItem" [toJSVal key]))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/setItem MDN Storage.setItem documentation>
setItem :: (MonadDOM m, ToJSString key, ToJSString value) => Storage -> key -> value -> m ()
setItem self key value = liftDOM (void (self ^. jsf "setItem" [toJSVal key, toJSVal value]))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/length MDN Storage.length documentation>
getLength :: (MonadDOM m) => Storage -> m Word
getLength self = liftDOM ((P.round <$> ((self ^. js "length") >>= valToNumber)))