module Text.Jasmine ( minify , minifym , minifyFile ) where import Text.Jasmine.Parse import Text.Jasmine.Pretty import qualified Blaze.ByteString.Builder as BB import qualified Data.ByteString.Lazy as LB import qualified Data.ByteString as B -- TODO: consider using option 4 of http://www.randomhacks.net/articles/2007/03/10/haskell-8-ways-to-report-errors minifym :: B.ByteString -> Either String LB.ByteString minifym s = case readJsm s of Left msg -> Left msg Right p -> Right $ BB.toLazyByteString $ renderJS p minify :: B.ByteString -> LB.ByteString minify s = BB.toLazyByteString $ renderJS $ readJs s _minify' :: B.ByteString -> BB.Builder _minify' s = renderJS $ readJs s minifyFile :: FilePath -> IO LB.ByteString minifyFile filename = do x <- B.readFile (filename) return $ minify x -- EOF