{-# LANGUAGE TemplateHaskell #-} module Heist.Splices.Async.TH (loadJS) where import qualified Data.Text as T import qualified Data.Text.IO as TIO import Language.Haskell.TH import Language.Haskell.TH.Syntax -- | loadJS: this template haskell function put's the contents of the javascript files into fileContents, so that it can be included with activateAsync loadJS = do let fname = mkName "fileContents" typeSig <- SigD fname `fmap` [t| String |] v <- valD (varP fname) (normalB $ loadJSFiles) [] return [typeSig, v] loadJSFiles = do fs <- runIO $ mapM readFile ["js/valentine.min.js", "js/reqwest.min.js", "js/qwery.min.js", "js/heist-async.min.js"] lift $ unlines fs