jsaddle-dom-0.10.0.0: src/JSDOM/Generated/PushEvent.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from push-api (webref). Do not edit.
module JSDOM.Generated.PushEvent
(newPushEvent, getData, getDataUnsafe, getDataUnchecked, PushEvent(..), gTypePushEvent)
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/PushEvent/PushEvent MDN PushEvent. documentation>
newPushEvent :: (MonadDOM m, ToJSString type') => type' -> Maybe PushEventInit -> m PushEvent
newPushEvent type' eventInitDict = liftDOM (((new (jsg "PushEvent") [toJSVal type', P.maybe (P.return jsUndefined) toJSVal eventInitDict]) >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushEvent/data MDN PushEvent.data documentation>
getData :: (MonadDOM m) => PushEvent -> m (Maybe PushMessageData)
getData self = liftDOM (((self ^. js "data") >>= fromJSValUnchecked))
-- | <https://developer.mozilla.org/docs/Web/API/PushEvent/data MDN PushEvent.data documentation>
getDataUnsafe :: (MonadDOM m, HasCallStack) => PushEvent -> m PushMessageData
getDataUnsafe self = liftDOM ((((self ^. js "data") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://developer.mozilla.org/docs/Web/API/PushEvent/data MDN PushEvent.data documentation>
getDataUnchecked :: (MonadDOM m) => PushEvent -> m PushMessageData
getDataUnchecked self = liftDOM (((self ^. js "data") >>= fromJSValUnchecked))