jsaddle-dom-0.10.0.0: src/JSDOM/Generated/ReadableWritablePair.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from streams (webref). Do not edit.
module JSDOM.Generated.ReadableWritablePair
(newReadableWritablePair, setReadable, getReadable, setWritable, getWritable, ReadableWritablePair(..), gTypeReadableWritablePair)
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://streams.spec.whatwg.org/#dictdef-readablewritablepair ReadableWritablePair specification>
newReadableWritablePair :: (MonadDOM m, IsReadableStream readable, IsWritableStream writable) => readable -> writable -> m ReadableWritablePair
newReadableWritablePair readable writable = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "readable" (toJSVal readable)) P.>> (o ^. jss "writable" (toJSVal writable)) P.>> P.return o)) >>= fromJSValUnchecked))
-- | <https://streams.spec.whatwg.org/#dom-readablewritablepair-readable ReadableWritablePair.readable specification>
setReadable :: (MonadDOM m, IsReadableStream val) => ReadableWritablePair -> val -> m ()
setReadable self val = liftDOM (void (self ^. jss "readable" (toJSVal val)))
-- | <https://streams.spec.whatwg.org/#dom-readablewritablepair-readable ReadableWritablePair.readable specification>
getReadable :: (MonadDOM m) => ReadableWritablePair -> m ReadableStream
getReadable self = liftDOM (((self ^. js "readable") >>= fromJSValUnchecked))
-- | <https://streams.spec.whatwg.org/#dom-readablewritablepair-writable ReadableWritablePair.writable specification>
setWritable :: (MonadDOM m, IsWritableStream val) => ReadableWritablePair -> val -> m ()
setWritable self val = liftDOM (void (self ^. jss "writable" (toJSVal val)))
-- | <https://streams.spec.whatwg.org/#dom-readablewritablepair-writable ReadableWritablePair.writable specification>
getWritable :: (MonadDOM m) => ReadableWritablePair -> m WritableStream
getWritable self = liftDOM (((self ^. js "writable") >>= fromJSValUnchecked))