{-# LANGUAGE CPP #-} {-# LANGUAGE PatternSynonyms #-} -- For HasCallStack compatibility {-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} module JSDOM.Generated.MessageChannel (newMessageChannel, getPort1, getPort1Unsafe, getPort1Unchecked, getPort2, getPort2Unsafe, getPort2Unchecked, MessageChannel(..), gTypeMessageChannel) where import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..)) import qualified Prelude (error) import Data.Typeable (Typeable) import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, new, array) import Data.Int (Int64) import Data.Word (Word, Word64) import JSDOM.Types import Control.Applicative ((<$>)) import Control.Monad (void) import Control.Lens.Operators ((^.)) import JSDOM.EventTargetClosures (EventName, unsafeEventName) import JSDOM.Enums #if MIN_VERSION_base(4,9,0) import GHC.Stack (HasCallStack) #elif MIN_VERSION_base(4,8,0) import GHC.Stack (CallStack) import GHC.Exts (Constraint) type HasCallStack = ((?callStack :: CallStack) :: Constraint) #else import GHC.Exts (Constraint) type HasCallStack = (() :: Constraint) #endif -- | newMessageChannel :: (MonadDOM m) => m MessageChannel newMessageChannel = liftDOM (MessageChannel <$> new (jsg "MessageChannel") ()) -- | getPort1 :: (MonadDOM m) => MessageChannel -> m (Maybe MessagePort) getPort1 self = liftDOM ((self ^. js "port1") >>= fromJSVal) -- | getPort1Unsafe :: (MonadDOM m, HasCallStack) => MessageChannel -> m MessagePort getPort1Unsafe self = liftDOM (((self ^. js "port1") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getPort1Unchecked :: (MonadDOM m) => MessageChannel -> m MessagePort getPort1Unchecked self = liftDOM ((self ^. js "port1") >>= fromJSValUnchecked) -- | getPort2 :: (MonadDOM m) => MessageChannel -> m (Maybe MessagePort) getPort2 self = liftDOM ((self ^. js "port2") >>= fromJSVal) -- | getPort2Unsafe :: (MonadDOM m, HasCallStack) => MessageChannel -> m MessagePort getPort2Unsafe self = liftDOM (((self ^. js "port2") >>= fromJSVal) >>= maybe (Prelude.error "Nothing to return") return) -- | getPort2Unchecked :: (MonadDOM m) => MessageChannel -> m MessagePort getPort2Unchecked self = liftDOM ((self ^. js "port2") >>= fromJSValUnchecked)