jsaddle-dom-0.10.0.0: src/JSDOM/Generated/LockInfo.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from web-locks (webref). Do not edit.
module JSDOM.Generated.LockInfo
(newLockInfo, setName, getName, getNameUnsafe, getNameUnchecked, setMode, getMode, getModeUnsafe, getModeUnchecked, setClientId, getClientId, getClientIdUnsafe, getClientIdUnchecked, LockInfo(..), gTypeLockInfo)
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://w3c.github.io/web-locks/#dictdef-lockinfo LockInfo specification>
newLockInfo :: (MonadDOM m) => m LockInfo
newLockInfo = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-name LockInfo.name specification>
setName :: (MonadDOM m, ToJSString val) => LockInfo -> val -> m ()
setName self val = liftDOM (void (self ^. jss "name" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-name LockInfo.name specification>
getName :: (MonadDOM m, FromJSString result) => LockInfo -> m (Maybe result)
getName self = liftDOM (((self ^. js "name") >>= fromMaybeJSString))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-name LockInfo.name specification>
getNameUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => LockInfo -> m result
getNameUnsafe self = liftDOM ((((self ^. js "name") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-name LockInfo.name specification>
getNameUnchecked :: (MonadDOM m, FromJSString result) => LockInfo -> m result
getNameUnchecked self = liftDOM (((self ^. js "name") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-mode LockInfo.mode specification>
setMode :: (MonadDOM m) => LockInfo -> LockMode -> m ()
setMode self val = liftDOM (void (self ^. jss "mode" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-mode LockInfo.mode specification>
getMode :: (MonadDOM m) => LockInfo -> m (Maybe LockMode)
getMode self = liftDOM (((self ^. js "mode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-mode LockInfo.mode specification>
getModeUnsafe :: (MonadDOM m, HasCallStack) => LockInfo -> m LockMode
getModeUnsafe self = liftDOM ((((self ^. js "mode") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-mode LockInfo.mode specification>
getModeUnchecked :: (MonadDOM m) => LockInfo -> m LockMode
getModeUnchecked self = liftDOM (((self ^. js "mode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-clientid LockInfo.clientId specification>
setClientId :: (MonadDOM m, ToJSString val) => LockInfo -> val -> m ()
setClientId self val = liftDOM (void (self ^. jss "clientId" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-clientid LockInfo.clientId specification>
getClientId :: (MonadDOM m, FromJSString result) => LockInfo -> m (Maybe result)
getClientId self = liftDOM (((self ^. js "clientId") >>= fromMaybeJSString))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-clientid LockInfo.clientId specification>
getClientIdUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => LockInfo -> m result
getClientIdUnsafe self = liftDOM ((((self ^. js "clientId") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockinfo-clientid LockInfo.clientId specification>
getClientIdUnchecked :: (MonadDOM m, FromJSString result) => LockInfo -> m result
getClientIdUnchecked self = liftDOM (((self ^. js "clientId") >>= fromJSValUnchecked))