jsaddle-dom-0.10.0.0: src/JSDOM/Generated/LockOptions.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.LockOptions
(newLockOptions, setMode, getMode, getModeUnsafe, getModeUnchecked, setIfAvailable, getIfAvailable, getIfAvailableUnsafe, getIfAvailableUnchecked, setSteal, getSteal, getStealUnsafe, getStealUnchecked, setSignal, getSignal, getSignalUnsafe, getSignalUnchecked, LockOptions(..), gTypeLockOptions)
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-lockoptions LockOptions specification>
newLockOptions :: (MonadDOM m) => m LockOptions
newLockOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-mode LockOptions.mode specification>
setMode :: (MonadDOM m) => LockOptions -> LockMode -> m ()
setMode self val = liftDOM (void (self ^. jss "mode" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-mode LockOptions.mode specification>
getMode :: (MonadDOM m) => LockOptions -> m (Maybe LockMode)
getMode self = liftDOM (((self ^. js "mode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-mode LockOptions.mode specification>
getModeUnsafe :: (MonadDOM m, HasCallStack) => LockOptions -> 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-lockoptions-mode LockOptions.mode specification>
getModeUnchecked :: (MonadDOM m) => LockOptions -> m LockMode
getModeUnchecked self = liftDOM (((self ^. js "mode") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-ifavailable LockOptions.ifAvailable specification>
setIfAvailable :: (MonadDOM m) => LockOptions -> Bool -> m ()
setIfAvailable self val = liftDOM (void (self ^. jss "ifAvailable" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-ifavailable LockOptions.ifAvailable specification>
getIfAvailable :: (MonadDOM m) => LockOptions -> m (Maybe Bool)
getIfAvailable self = liftDOM (((self ^. js "ifAvailable") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-ifavailable LockOptions.ifAvailable specification>
getIfAvailableUnsafe :: (MonadDOM m, HasCallStack) => LockOptions -> m Bool
getIfAvailableUnsafe self = liftDOM ((((self ^. js "ifAvailable") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-ifavailable LockOptions.ifAvailable specification>
getIfAvailableUnchecked :: (MonadDOM m) => LockOptions -> m Bool
getIfAvailableUnchecked self = liftDOM (((self ^. js "ifAvailable") >>= valToBool))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-steal LockOptions.steal specification>
setSteal :: (MonadDOM m) => LockOptions -> Bool -> m ()
setSteal self val = liftDOM (void (self ^. jss "steal" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-steal LockOptions.steal specification>
getSteal :: (MonadDOM m) => LockOptions -> m (Maybe Bool)
getSteal self = liftDOM (((self ^. js "steal") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-steal LockOptions.steal specification>
getStealUnsafe :: (MonadDOM m, HasCallStack) => LockOptions -> m Bool
getStealUnsafe self = liftDOM ((((self ^. js "steal") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-steal LockOptions.steal specification>
getStealUnchecked :: (MonadDOM m) => LockOptions -> m Bool
getStealUnchecked self = liftDOM (((self ^. js "steal") >>= valToBool))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-signal LockOptions.signal specification>
setSignal :: (MonadDOM m, IsAbortSignal val) => LockOptions -> val -> m ()
setSignal self val = liftDOM (void (self ^. jss "signal" (toJSVal val)))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-signal LockOptions.signal specification>
getSignal :: (MonadDOM m) => LockOptions -> m (Maybe AbortSignal)
getSignal self = liftDOM (((self ^. js "signal") >>= fromJSValUnchecked))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-signal LockOptions.signal specification>
getSignalUnsafe :: (MonadDOM m, HasCallStack) => LockOptions -> m AbortSignal
getSignalUnsafe self = liftDOM ((((self ^. js "signal") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://w3c.github.io/web-locks/#dom-lockoptions-signal LockOptions.signal specification>
getSignalUnchecked :: (MonadDOM m) => LockOptions -> m AbortSignal
getSignalUnchecked self = liftDOM (((self ^. js "signal") >>= fromJSValUnchecked))