graphql-engine/server/src-lib/Hasura/Backends/DataConnector/IR/Function.hs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

34 lines
859 B
Haskell
Raw Normal View History

module Hasura.Backends.DataConnector.IR.Function
( Name (..),
)
where
import Data.Aeson (FromJSON, ToJSON, ToJSONKey (..))
import Data.Aeson.Types (toJSONKeyText)
import Data.List.NonEmpty qualified as NonEmpty
import Data.Text qualified as Text
import Data.Text.Extended (ToTxt (..))
import Hasura.Base.ErrorValue qualified as ErrorValue
import Hasura.Base.ToErrorValue
import Hasura.Incremental (Cacheable)
import Hasura.Prelude
newtype Name = Name {unName :: NonEmpty Text}
deriving stock (Data, Eq, Generic, Ord, Show)
deriving newtype
( Cacheable,
FromJSON,
Hashable,
NFData,
ToJSON
)
instance ToJSONKey Name where
toJSONKey = toJSONKeyText toTxt
instance ToTxt Name where
toTxt = Text.intercalate "." . NonEmpty.toList . unName
instance ToErrorValue Name where
toErrorValue = ErrorValue.squote . toTxt