summaryrefslogtreecommitdiff
path: root/src/JavaScript.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/JavaScript.hs')
-rw-r--r--src/JavaScript.hs45
1 files changed, 8 insertions, 37 deletions
diff --git a/src/JavaScript.hs b/src/JavaScript.hs
index 81b3502..6c07370 100644
--- a/src/JavaScript.hs
+++ b/src/JavaScript.hs
@@ -1,40 +1,18 @@
module JavaScript (
- getElementById,
- documentQuerySelector,
- querySelector,
-
- asEventListener,
- addEventListener,
+ module JavaScript.Event,
+ module JavaScript.Element,
+ module JavaScript.Window,
+ toJSVal,
consoleLog,
consoleLogVal,
) where
-import GHC.Wasm.Prim
-
-getElementById :: String -> IO (Maybe JSVal)
-getElementById = fmap nullToNothing . js_document_getElementById . toJSString
-foreign import javascript unsafe "document.getElementById($1)"
- js_document_getElementById :: JSString -> IO JSVal
-
-documentQuerySelector :: String -> IO (Maybe JSVal)
-documentQuerySelector = fmap nullToNothing . js_document_querySelector . toJSString
-foreign import javascript unsafe "document.querySelector($1)"
- js_document_querySelector :: JSString -> IO JSVal
-
-querySelector :: String -> JSVal -> IO (Maybe JSVal)
-querySelector sel e = nullToNothing <$> js_querySelector e (toJSString sel)
-foreign import javascript unsafe "$1.querySelector($2)"
- js_querySelector :: JSVal -> JSString -> IO JSVal
+import JavaScript.Element
+import JavaScript.Event
+import JavaScript.Val
+import JavaScript.Window
-foreign import javascript "wrapper"
- asEventListener :: (JSVal -> IO ()) -> IO JSVal
-
-addEventListener :: JSVal -> String -> (JSVal -> IO ()) -> IO ()
-addEventListener obj ev cb = do
- js_addEventListener obj (toJSString ev) =<< asEventListener cb
-foreign import javascript unsafe "$1.addEventListener($2, $3)"
- js_addEventListener :: JSVal -> JSString -> JSVal -> IO ()
consoleLog :: String -> IO ()
consoleLog = js_consoleLog . toJSString
@@ -43,10 +21,3 @@ foreign import javascript unsafe "console.log($1)"
foreign import javascript unsafe "console.log($1)"
consoleLogVal :: JSVal -> IO ()
-
-
-nullToNothing :: JSVal -> Maybe JSVal
-nullToNothing val | isNull val = Nothing
- | otherwise = Just val
-foreign import javascript unsafe "$1 === null"
- isNull :: JSVal -> Bool