{-# LANGUAGE OverloadedStrings #-}
module Miso.FFI.SSE
( EventSource(..)
, data'
, new
, addEventListener
) where
import qualified Language.Javascript.JSaddle as JSaddle
import Language.Javascript.JSaddle hiding (new)
import qualified Miso.FFI.Internal as FFI
import Miso.String
newtype EventSource = EventSource JSVal
data' :: JSVal -> JSM JSVal
data' :: JSVal -> JSM JSVal
data' JSVal
v = JSVal
v JSVal -> JSString -> JSM JSVal
forall this name.
(MakeObject this, ToJSString name) =>
this -> name -> JSM JSVal
! (JSString
"data" :: JSString)
new :: MisoString
-> JSM EventSource
new :: MisoString -> JSM EventSource
new MisoString
url = JSVal -> EventSource
EventSource (JSVal -> EventSource) -> JSM JSVal -> JSM EventSource
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> JSM JSVal -> [MisoString] -> JSM JSVal
forall constructor args.
(MakeObject constructor, MakeArgs args) =>
constructor -> args -> JSM JSVal
JSaddle.new (JSString -> JSM JSVal
forall a. ToJSString a => a -> JSM JSVal
jsg (JSString
"EventSource" :: JSString)) [MisoString
url]
addEventListener :: EventSource -> MisoString -> (JSVal -> JSM ()) -> JSM ()
addEventListener :: EventSource -> MisoString -> (JSVal -> JSM ()) -> JSM ()
addEventListener (EventSource JSVal
s) = JSVal -> MisoString -> (JSVal -> JSM ()) -> JSM ()
FFI.addEventListener JSVal
s