packages feed

ghcjs-dom-javascript-0.10.0.0: src/GHCJS/DOM/JSFFI/Generated/Storage.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ForeignFunctionInterface, JavaScriptFFI #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from html (webref). Do not edit.
module GHCJS.DOM.JSFFI.Generated.Storage
       (js_clear, js_getItem, js_key, js_removeItem, js_setItem, js_getLength, 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 GHCJS.Types (JSVal, JSString)
import GHCJS.Foreign (jsUndefined, jsNull)
import GHCJS.DOM.Types
import qualified GHCJS.DOM.Types as Types
import GHCJS.DOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import GHCJS.DOM.JSFFI.Generated.Enums

foreign import javascript safe "(($1) => { return $1[\"clear\"](); })"
        js_clear :: Storage -> IO ()
-- | <https://developer.mozilla.org/docs/Web/API/Storage/clear MDN Storage.clear documentation>
clear :: (MonadDOM m) => Storage -> m ()
clear self = liftDOM (void ((js_clear (self))))

foreign import javascript safe "(($1, $2) => { return $1[\"getItem\"]($2); })"
        js_getItem :: Storage -> JSString -> IO JSVal
-- | <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 (((fromMaybeJSString . Nullable) <$> (js_getItem (self) (toJSString key))))

-- | <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 ((js_getItem (self) (toJSString 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 ((((fromMaybeJSString . Nullable) <$> (js_getItem (self) (toJSString key))) >>= 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 ((pFromJSVal <$> (js_getItem (self) (toJSString key))))

foreign import javascript safe "(($1, $2) => { return $1[\"key\"]($2); })"
        js_key :: Storage -> Word -> IO JSVal
-- | <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 (((fromMaybeJSString . Nullable) <$> (js_key (self) (index))))

-- | <https://developer.mozilla.org/docs/Web/API/Storage/key MDN Storage.key documentation>
key_ :: (MonadDOM m) => Storage -> Word -> m ()
key_ self index = liftDOM (void ((js_key (self) (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 ((((fromMaybeJSString . Nullable) <$> (js_key (self) (index))) >>= 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 ((pFromJSVal <$> (js_key (self) (index))))

foreign import javascript safe "(($1, $2) => { return $1[\"removeItem\"]($2); })"
        js_removeItem :: Storage -> JSString -> IO ()
-- | <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 ((js_removeItem (self) (toJSString key))))

foreign import javascript safe "(($1, $2, $3) => { return $1[\"setItem\"]($2, $3); })"
        js_setItem :: Storage -> JSString -> JSString -> IO ()
-- | <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 ((js_setItem (self) (toJSString key) (toJSString value))))

foreign import javascript unsafe "(($1) => { return $1[\"length\"]; })"
        js_getLength :: Storage -> IO Word
-- | <https://developer.mozilla.org/docs/Web/API/Storage/length MDN Storage.length documentation>
getLength :: (MonadDOM m) => Storage -> m Word
getLength self = liftDOM ((js_getLength (self)))