packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/SerialPort.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from serial (webref). Do not edit.
module JSDOM.Generated.SerialPort
       (close, forget, getInfo, getInfo_, getSignals, getSignals_, open, setSignals, getConnected, getReadable, getReadableUnsafe, getReadableUnchecked, getWritable, getWritableUnsafe, getWritableUnchecked, connect, disconnect, SerialPort(..), gTypeSerialPort)
       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/SerialPort/close MDN SerialPort.close documentation>
close :: (MonadDOM m) => SerialPort -> m ()
close self = liftDOM (void (((self ^. jsf "close" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/forget MDN SerialPort.forget documentation>
forget :: (MonadDOM m) => SerialPort -> m ()
forget self = liftDOM (void (((self ^. jsf "forget" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/getInfo MDN SerialPort.getInfo documentation>
getInfo :: (MonadDOM m) => SerialPort -> m SerialPortInfo
getInfo self = liftDOM (((self ^. jsf "getInfo" ()) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/getInfo MDN SerialPort.getInfo documentation>
getInfo_ :: (MonadDOM m) => SerialPort -> m ()
getInfo_ self = liftDOM (void (self ^. jsf "getInfo" ()))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/getSignals MDN SerialPort.getSignals documentation>
getSignals :: (MonadDOM m) => SerialPort -> m SerialInputSignals
getSignals self = liftDOM (((((self ^. jsf "getSignals" ()) >>= readPromise)) >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/getSignals MDN SerialPort.getSignals documentation>
getSignals_ :: (MonadDOM m) => SerialPort -> m ()
getSignals_ self = liftDOM (void (((self ^. jsf "getSignals" ()) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/open MDN SerialPort.open documentation>
open :: (MonadDOM m) => SerialPort -> SerialOptions -> m ()
open self options = liftDOM (void (((self ^. jsf "open" [toJSVal options]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/setSignals MDN SerialPort.setSignals documentation>
setSignals :: (MonadDOM m) => SerialPort -> Maybe SerialOutputSignals -> m ()
setSignals self signals = liftDOM (void (((self ^. jsf "setSignals" [P.maybe (P.return jsUndefined) toJSVal signals]) >>= readPromise)))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/connected MDN SerialPort.connected documentation>
getConnected :: (MonadDOM m) => SerialPort -> m Bool
getConnected self = liftDOM (((self ^. js "connected") >>= valToBool))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/readable MDN SerialPort.readable documentation>
getReadable :: (MonadDOM m) => SerialPort -> m (Maybe ReadableStream)
getReadable self = liftDOM (((self ^. js "readable") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/readable MDN SerialPort.readable documentation>
getReadableUnsafe :: (MonadDOM m, HasCallStack) => SerialPort -> m ReadableStream
getReadableUnsafe self = liftDOM ((((self ^. js "readable") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/readable MDN SerialPort.readable documentation>
getReadableUnchecked :: (MonadDOM m) => SerialPort -> m ReadableStream
getReadableUnchecked self = liftDOM (((self ^. js "readable") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/writable MDN SerialPort.writable documentation>
getWritable :: (MonadDOM m) => SerialPort -> m (Maybe WritableStream)
getWritable self = liftDOM (((self ^. js "writable") >>= fromJSValUnchecked))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/writable MDN SerialPort.writable documentation>
getWritableUnsafe :: (MonadDOM m, HasCallStack) => SerialPort -> m WritableStream
getWritableUnsafe self = liftDOM ((((self ^. js "writable") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://developer.mozilla.org/docs/Web/API/SerialPort/writable MDN SerialPort.writable documentation>
getWritableUnchecked :: (MonadDOM m) => SerialPort -> m WritableStream
getWritableUnchecked self = liftDOM (((self ^. js "writable") >>= fromJSValUnchecked))

-- | <https://serial.spec.whatwg.org/#dom-serialport-onconnect connect event>
connect :: EventName SerialPort Event
connect = unsafeEventName (toJSString "connect")

-- | <https://serial.spec.whatwg.org/#dom-serialport-ondisconnect disconnect event>
disconnect :: EventName SerialPort Event
disconnect = unsafeEventName (toJSString "disconnect")