elm-export-0.4.1.0: src/Elm/Common.hs
{-# LANGUAGE OverloadedStrings #-}
module Elm.Common where
import Data.Monoid ((<>))
import Data.Text
import Elm.Type
isTopLevel :: ElmTypeExpr -> Bool
isTopLevel (Primitive _) = True
isTopLevel (DataType _ _) = True
isTopLevel (Product (Primitive "List") (Primitive "Char")) = True
isTopLevel _ = False
-- Put parentheses around the string if the Elm type requires it (i.e. it's not a
-- Primitive Elm type nor a named DataType).
parenthesize :: ElmTypeExpr -> Text -> Text
parenthesize t s =
if isTopLevel t then s else ("(" <> s <> ")")
data Options =
Options {fieldLabelModifier :: Text -> Text}
defaultOptions :: Options
defaultOptions = Options {fieldLabelModifier = id}