happstack-jmacro-6.0.3: Happstack/Server/JMacro.hs
-- |This modules provides support for using JMacro with Happstack.
--
-- It provides the instance,
--
-- > instance ToMessage JStat
--
-- Which will serve a 'JStat' value as @text/javascript; charset=UTF-8@.
module Happstack.Server.JMacro where
import qualified Data.ByteString.Char8 as S
import Data.ByteString.Lazy.UTF8 as LB
import Happstack.Server (ToMessage(..))
import Language.Javascript.JMacro (JStat(..), renderJs)
import Text.PrettyPrint (Style(mode), Mode(OneLineMode), style, renderStyle)
instance ToMessage JStat where
toContentType _ = S.pack "text/javascript; charset=UTF-8"
toMessage js = LB.fromString . renderStyle (style { mode = OneLineMode }) . renderJs $ js