summaryrefslogtreecommitdiff
path: root/src/Language/GraphQL
diff options
context:
space:
mode:
Diffstat (limited to 'src/Language/GraphQL')
-rw-r--r--src/Language/GraphQL/TH.hs48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/Language/GraphQL/TH.hs b/src/Language/GraphQL/TH.hs
deleted file mode 100644
index 22ffdd0..0000000
--- a/src/Language/GraphQL/TH.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-{- This Source Code Form is subject to the terms of the Mozilla Public License,
- v. 2.0. If a copy of the MPL was not distributed with this file, You can
- obtain one at https://mozilla.org/MPL/2.0/. -}
-
--- | Template Haskell helpers.
-module Language.GraphQL.TH
- ( gql
- ) where
-
-import Language.Haskell.TH.Quote (QuasiQuoter(..))
-import Language.Haskell.TH (Exp(..), Lit(..))
-
-stripIndentation :: String -> String
-stripIndentation code = reverse
- $ dropWhile isLineBreak
- $ reverse
- $ unlines
- $ indent spaces <$> lines' withoutLeadingNewlines
- where
- indent 0 xs = xs
- indent count (' ' : xs) = indent (count - 1) xs
- indent _ xs = xs
- withoutLeadingNewlines = dropWhile isLineBreak code
- spaces = length $ takeWhile (== ' ') withoutLeadingNewlines
- lines' "" = []
- lines' string =
- let (line, rest) = break isLineBreak string
- reminder =
- case rest of
- [] -> []
- '\r' : '\n' : strippedString -> lines' strippedString
- _ : strippedString -> lines' strippedString
- in line : reminder
- isLineBreak = flip any ['\n', '\r'] . (==)
-
--- | Removes leading and trailing newlines. Indentation of the first line is
--- removed from each line of the string.
-{-# DEPRECATED gql "Use Language.GraphQL.Class.gql from graphql-spice instead" #-}
-gql :: QuasiQuoter
-gql = QuasiQuoter
- { quoteExp = pure . LitE . StringL . stripIndentation
- , quotePat = const
- $ fail "Illegal gql QuasiQuote (allowed as expression only, used as a pattern)"
- , quoteType = const
- $ fail "Illegal gql QuasiQuote (allowed as expression only, used as a type)"
- , quoteDec = const
- $ fail "Illegal gql QuasiQuote (allowed as expression only, used as a declaration)"
- }