{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoImplicitPrelude #-} -- | General utils for apps module Biz.App (CSS (..), Manifest (..)) where import Alpha import Data.Aeson (ToJSON) import qualified Data.Text.Lazy as Lazy import qualified Data.Text.Lazy.Encoding as Lazy import Network.HTTP.Media ( (//), (/:), ) import Servant newtype CSS = CSS { unCSS :: Text } instance Accept CSS where contentType _ = "text" // "css" /: ("charset", "utf-8") instance MimeRender CSS Text where mimeRender _ = Lazy.encodeUtf8 . Lazy.fromStrict -- | The manifest describes your app for web app thumbnails, iPhone tiles, etc. data Manifest = Manifest { name :: Text, short_name :: Text, start_url :: Text, display :: Text, theme_color :: Text, description :: Text } deriving (Show, Eq, Generic) instance ToJSON Manifest