{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.ReadableStreamDefaultController
(newReadableStreamDefaultController, enqueue, close, error,
getDesiredSize, ReadableStreamDefaultController(..),
gTypeReadableStreamDefaultController)
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
newReadableStreamDefaultController ::
(MonadDOM m, ToJSVal underlyingSource) =>
ReadableStream ->
underlyingSource ->
Word -> Word -> m ReadableStreamDefaultController
newReadableStreamDefaultController :: ReadableStream
-> underlyingSource
-> Word
-> Word
-> m ReadableStreamDefaultController
newReadableStreamDefaultController ReadableStream
stream underlyingSource
underlyingSource Word
size
Word
highWaterMark
= DOM ReadableStreamDefaultController
-> m ReadableStreamDefaultController
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM
(JSVal -> ReadableStreamDefaultController
ReadableStreamDefaultController (JSVal -> ReadableStreamDefaultController)
-> JSM JSVal -> DOM ReadableStreamDefaultController
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>
JSM JSVal -> [JSM JSVal] -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
new ([Char] -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg [Char]
"ReadableStreamDefaultController")
[ReadableStream -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal ReadableStream
stream, underlyingSource -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal underlyingSource
underlyingSource, Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
size,
Word -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Word
highWaterMark])
enqueue ::
(MonadDOM m, ToJSVal chunk) =>
ReadableStreamDefaultController -> Maybe chunk -> m ()
enqueue :: ReadableStreamDefaultController -> Maybe chunk -> m ()
enqueue ReadableStreamDefaultController
self Maybe chunk
chunk
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (ReadableStreamDefaultController
self ReadableStreamDefaultController
-> Getting (JSM JSVal) ReadableStreamDefaultController (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"enqueue" [Maybe chunk -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe chunk
chunk]))
close :: (MonadDOM m) => ReadableStreamDefaultController -> m ()
close :: ReadableStreamDefaultController -> m ()
close ReadableStreamDefaultController
self = DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (ReadableStreamDefaultController
self ReadableStreamDefaultController
-> Getting (JSM JSVal) ReadableStreamDefaultController (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> () -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"close" ()))
error ::
(MonadDOM m, ToJSVal error) =>
ReadableStreamDefaultController -> Maybe error -> m ()
error :: ReadableStreamDefaultController -> Maybe error -> m ()
error ReadableStreamDefaultController
self Maybe error
error
= DOM () -> m ()
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM (JSM JSVal -> DOM ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (ReadableStreamDefaultController
self ReadableStreamDefaultController
-> Getting (JSM JSVal) ReadableStreamDefaultController (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> [JSM JSVal] -> JSF
forall name args.
(ToJSString name, MakeArgs args) =>
name -> args -> JSF
jsf [Char]
"error" [Maybe error -> JSM JSVal
forall a. ToJSVal a => a -> JSM JSVal
toJSVal Maybe error
error]))
getDesiredSize ::
(MonadDOM m) => ReadableStreamDefaultController -> m Double
getDesiredSize :: ReadableStreamDefaultController -> m Double
getDesiredSize ReadableStreamDefaultController
self
= DOM Double -> m Double
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((ReadableStreamDefaultController
self ReadableStreamDefaultController
-> Getting (JSM JSVal) ReadableStreamDefaultController (JSM JSVal)
-> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char]
-> IndexPreservingGetter
ReadableStreamDefaultController (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"desiredSize") JSM JSVal -> (JSVal -> DOM Double) -> DOM Double
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM Double
forall value. ToJSVal value => value -> DOM Double
valToNumber)