{-# LANGUAGE MagicHash #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module GHCJS.Prim ( module GHCJS.Prim.Internal
, fromJSString
, toJSString
, isNull
, isUndefined
) where
import GHCJS.Prim.Internal
import qualified Data.Text as T (unpack, pack)
import Data.JSString.Text (textFromJSVal)
import Language.Javascript.JSaddle.Types (JSVal(..), JSString(..), GHCJSPure(..), ghcjsPureMap)
import qualified Language.Javascript.JSaddle.Native.Internal as N
(stringToValue, isNull, isUndefined)
fromJSString :: JSVal -> GHCJSPure String
fromJSString :: JSVal -> GHCJSPure String
fromJSString = forall a b. (a -> b) -> GHCJSPure a -> GHCJSPure b
ghcjsPureMap Text -> String
T.unpack forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> GHCJSPure Text
textFromJSVal
{-# INLINE fromJSString #-}
toJSString :: String -> GHCJSPure JSVal
toJSString :: String -> GHCJSPure JSVal
toJSString String
s = forall a. JSM a -> GHCJSPure a
GHCJSPure forall a b. (a -> b) -> a -> b
$ JSString -> JSM JSVal
N.stringToValue (Text -> JSString
JSString forall a b. (a -> b) -> a -> b
$ String -> Text
T.pack String
s)
{-# INLINE toJSString #-}
isNull :: JSVal -> GHCJSPure Bool
isNull :: JSVal -> GHCJSPure Bool
isNull = forall a. JSM a -> GHCJSPure a
GHCJSPure forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> JSM Bool
N.isNull
{-# INLINE isNull #-}
isUndefined :: JSVal -> GHCJSPure Bool
isUndefined :: JSVal -> GHCJSPure Bool
isUndefined = forall a. JSM a -> GHCJSPure a
GHCJSPure forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> JSM Bool
N.isUndefined
{-# INLINE isUndefined #-}