diff options
Diffstat (limited to 'src/JavaScript.hs')
| -rw-r--r-- | src/JavaScript.hs | 45 |
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 |