{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.PerformanceResourceTiming
       (getInitiatorType, getNextHopProtocol, getWorkerStart,
        getRedirectStart, getRedirectEnd, getFetchStart,
        getDomainLookupStart, getDomainLookupEnd, getConnectStart,
        getConnectEnd, getSecureConnectionStart, getRequestStart,
        getResponseStart, getResponseEnd, PerformanceResourceTiming(..),
        gTypePerformanceResourceTiming)
       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 Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
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, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.initiatorType Mozilla PerformanceResourceTiming.initiatorType documentation> 
getInitiatorType ::
                 (MonadDOM m, FromJSString result) =>
                   PerformanceResourceTiming -> m result
getInitiatorType :: PerformanceResourceTiming -> m result
getInitiatorType PerformanceResourceTiming
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"initiatorType") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.nextHopProtocol Mozilla PerformanceResourceTiming.nextHopProtocol documentation> 
getNextHopProtocol ::
                   (MonadDOM m, FromJSString result) =>
                     PerformanceResourceTiming -> m result
getNextHopProtocol :: PerformanceResourceTiming -> m result
getNextHopProtocol PerformanceResourceTiming
self
  = DOM result -> m result
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"nextHopProtocol") JSM JSVal -> (JSVal -> DOM result) -> DOM result
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM result
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.workerStart Mozilla PerformanceResourceTiming.workerStart documentation> 
getWorkerStart ::
               (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getWorkerStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getWorkerStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"workerStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.redirectStart Mozilla PerformanceResourceTiming.redirectStart documentation> 
getRedirectStart ::
                 (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getRedirectStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getRedirectStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"redirectStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.redirectEnd Mozilla PerformanceResourceTiming.redirectEnd documentation> 
getRedirectEnd ::
               (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getRedirectEnd :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getRedirectEnd PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"redirectEnd") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.fetchStart Mozilla PerformanceResourceTiming.fetchStart documentation> 
getFetchStart ::
              (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getFetchStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getFetchStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"fetchStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.domainLookupStart Mozilla PerformanceResourceTiming.domainLookupStart documentation> 
getDomainLookupStart ::
                     (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getDomainLookupStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getDomainLookupStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"domainLookupStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.domainLookupEnd Mozilla PerformanceResourceTiming.domainLookupEnd documentation> 
getDomainLookupEnd ::
                   (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getDomainLookupEnd :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getDomainLookupEnd PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"domainLookupEnd") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.connectStart Mozilla PerformanceResourceTiming.connectStart documentation> 
getConnectStart ::
                (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getConnectStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getConnectStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"connectStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.connectEnd Mozilla PerformanceResourceTiming.connectEnd documentation> 
getConnectEnd ::
              (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getConnectEnd :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getConnectEnd PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"connectEnd") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.secureConnectionStart Mozilla PerformanceResourceTiming.secureConnectionStart documentation> 
getSecureConnectionStart ::
                         (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getSecureConnectionStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getSecureConnectionStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
      ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"secureConnectionStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.requestStart Mozilla PerformanceResourceTiming.requestStart documentation> 
getRequestStart ::
                (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getRequestStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getRequestStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"requestStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.responseStart Mozilla PerformanceResourceTiming.responseStart documentation> 
getResponseStart ::
                 (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getResponseStart :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getResponseStart PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"responseStart") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming.responseEnd Mozilla PerformanceResourceTiming.responseEnd documentation> 
getResponseEnd ::
               (MonadDOM m) => PerformanceResourceTiming -> m DOMHighResTimeStamp
getResponseEnd :: PerformanceResourceTiming -> m DOMHighResTimeStamp
getResponseEnd PerformanceResourceTiming
self
  = DOM DOMHighResTimeStamp -> m DOMHighResTimeStamp
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((PerformanceResourceTiming
self PerformanceResourceTiming
-> Getting (JSM JSVal) PerformanceResourceTiming (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter PerformanceResourceTiming (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"responseEnd") JSM JSVal
-> (JSVal -> DOM DOMHighResTimeStamp) -> DOM DOMHighResTimeStamp
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM DOMHighResTimeStamp
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)