module Servant.JS.Fiat ( JS ) where import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as LBS import qualified Data.Text as Text import qualified Data.Text.Encoding as Text import Data.Typeable import qualified Network.HTTP.Media as M import Servant.API -- | Give me some text, and we'll pretend it's javascript. -- I used this to render the routes as endpoint that's always up to date data JS deriving Typeable instance Accept JS where contentTypes _ = pure $ "application" M.// "javascript" instance MimeRender JS LBS.ByteString where mimeRender _ = id instance MimeRender JS BS.ByteString where mimeRender p = mimeRender p . LBS.fromStrict instance MimeRender JS Text.Text where mimeRender p = mimeRender p . Text.encodeUtf8