module Text.Jasmine ( minify , minifym , minifyBb , minifyFile ) where --import Text.Jasmine.Parse import Language.JavaScript.Parser import Text.Jasmine.Pretty import qualified Blaze.ByteString.Builder as BB import qualified Data.ByteString.Lazy as LB import qualified Data.ByteString.Lazy.Char8 as S8 minifym :: LB.ByteString -> Either String LB.ByteString minifym s = case parse' s of Left msg -> Left (show msg) Right p -> Right $ BB.toLazyByteString $ renderJS p minifyBb :: LB.ByteString -> Either String BB.Builder minifyBb s = case parse' s of Left msg -> Left (show msg) Right p -> Right (renderJS p) minify :: LB.ByteString -> LB.ByteString --minify s = BB.toLazyByteString $ renderJS $ readJs s minify s = BB.toLazyByteString $ renderJS $ readJs (lbToStr s) _minify' :: LB.ByteString -> BB.Builder _minify' s = renderJS $ readJs (lbToStr s) minifyFile :: FilePath -> IO LB.ByteString minifyFile filename = do x <- LB.readFile (filename) return $ minify x parse' :: S8.ByteString -> Either ParseError JSNode parse' input = parse (lbToStr input) "src" lbToStr :: S8.ByteString -> [Char] lbToStr str = S8.unpack str strToLb :: String -> S8.ByteString strToLb str = S8.pack str --strToLb str = (LB.fromChunks [(E.encodeUtf8 $ T.pack str)]) -- EOF