module JavaScript ( module JavaScript.Event, module JavaScript.Element, module JavaScript.Window, toJSVal, consoleLog, consoleLogVal, historyPushState, locationAssign, locationGetHash, locationSetHash, ) where import JavaScript.Element import JavaScript.Event import JavaScript.Val import JavaScript.Window consoleLog :: String -> IO () consoleLog = js_consoleLog . toJSString foreign import javascript unsafe "console.log($1)" js_consoleLog :: JSString -> IO () foreign import javascript unsafe "console.log($1)" consoleLogVal :: JSVal -> IO () historyPushState :: String -> IO () historyPushState = js_history_pushState . toJSString foreign import javascript unsafe "history.pushState(null, '', $1)" js_history_pushState :: JSString -> IO () locationAssign :: String -> IO () locationAssign = js_location_assign . toJSString foreign import javascript unsafe "window.location.assign($1)" js_location_assign :: JSString -> IO () locationGetHash :: IO String locationGetHash = fromJSString <$> js_location_hash_get foreign import javascript unsafe "window.location.hash" js_location_hash_get :: IO JSString locationSetHash :: String -> IO () locationSetHash = js_location_hash_set . toJSString foreign import javascript unsafe "window.location.hash = $1" js_location_hash_set :: JSString -> IO ()