morpheus-graphql-0.4.0: src/Data/Morpheus/Execution/Internal/Utils.hs
module Data.Morpheus.Execution.Internal.Utils
( capital
, nonCapital
, nameSpaceWith
, nameSpaceType
, nameSpaceTypeString
) where
import Data.Char (toLower, toUpper)
import Data.Semigroup ((<>))
import Data.Text (Text, unpack)
nameSpaceTypeString :: [String] -> String -> String
nameSpaceTypeString list name = concatMap capital (list <> [name])
nameSpaceType :: [Text] -> Text -> String
nameSpaceType list name = concatMap (capital . unpack) (list <> [name])
nameSpaceWith :: String -> String -> String
nameSpaceWith nSpace name = nonCapital nSpace <> capital name
nonCapital :: String -> String
nonCapital [] = []
nonCapital (x:xs) = toLower x : xs
capital :: String -> String
capital [] = []
capital (x:xs) = toUpper x : xs