Remove deprecated gql quasi quoter
This commit is contained in:
		| @@ -6,6 +6,10 @@ The format is based on | ||||
| and this project adheres to | ||||
| [Haskell Package Versioning Policy](https://pvp.haskell.org/). | ||||
|  | ||||
| ## [Unreleased] | ||||
| ### Changed | ||||
| - Remove deprecated 'gql' quasi quoter. | ||||
|  | ||||
| ## [1.4.0.0] - 2024-10-26 | ||||
| ### Changed | ||||
| - `Schema.Directive` is extended to contain a boolean argument, representing | ||||
| @@ -538,6 +542,7 @@ and this project adheres to | ||||
| ### Added | ||||
| - Data types for the GraphQL language. | ||||
|  | ||||
| [Unreleased]: https://git.caraus.tech/OSS/graphql/compare/v1.4.0.0...master | ||||
| [1.4.0.0]: https://git.caraus.tech/OSS/graphql/compare/v1.3.0.0...v1.4.0.0 | ||||
| [1.3.0.0]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.3...v1.3.0.0 | ||||
| [1.2.0.3]: https://git.caraus.tech/OSS/graphql/compare/v1.2.0.2...v1.2.0.3 | ||||
|   | ||||
| @@ -40,7 +40,6 @@ library | ||||
|     Language.GraphQL.Execute | ||||
|     Language.GraphQL.Execute.Coerce | ||||
|     Language.GraphQL.Execute.OrderedMap | ||||
|     Language.GraphQL.TH | ||||
|     Language.GraphQL.Type | ||||
|     Language.GraphQL.Type.In | ||||
|     Language.GraphQL.Type.Out | ||||
| @@ -63,7 +62,6 @@ library | ||||
|     exceptions ^>= 0.10.4, | ||||
|     megaparsec >= 9.0 && < 10, | ||||
|     parser-combinators >= 1.3 && < 2, | ||||
|     template-haskell >= 2.16 && < 3, | ||||
|     text >= 1.2 && < 3, | ||||
|     transformers >= 0.5.6 && < 0.7, | ||||
|     unordered-containers ^>= 0.2.14, | ||||
| @@ -84,7 +82,6 @@ test-suite graphql-test | ||||
|     Language.GraphQL.Execute.CoerceSpec | ||||
|     Language.GraphQL.Execute.OrderedMapSpec | ||||
|     Language.GraphQL.ExecuteSpec | ||||
|     Language.GraphQL.THSpec | ||||
|     Language.GraphQL.Type.OutSpec | ||||
|     Language.GraphQL.Validate.RulesSpec | ||||
|     Schemas.HeroSchema | ||||
|   | ||||
| @@ -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)" | ||||
|     } | ||||
| @@ -1,24 +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/. -} | ||||
|  | ||||
| {-# LANGUAGE QuasiQuotes #-} | ||||
|  | ||||
| module Language.GraphQL.THSpec | ||||
|     ( spec | ||||
|     ) where | ||||
|  | ||||
| import Language.GraphQL.TH (gql) | ||||
| import Test.Hspec (Spec, describe, it, shouldBe) | ||||
|  | ||||
| spec :: Spec | ||||
| spec = | ||||
|     describe "gql" $ | ||||
|         it "replaces CRNL with NL" $ | ||||
|             let expected = "line1\nline2\nline3" | ||||
|                 actual = [gql| | ||||
|                   line1 | ||||
|                   line2 | ||||
|                   line3 | ||||
|                 |] | ||||
|              in actual `shouldBe` expected | ||||
		Reference in New Issue
	
	Block a user