packages feed

graphql-spice 1.0.6.0 → 1.0.7.0

raw patch · 3 files changed

+60/−82 lines, 3 filesdep ~aesondep ~basedep ~containersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: aeson, base, containers, time

API changes (from Hackage documentation)

- Language.GraphQL.Class: gql :: QuasiQuoter
+ Language.GraphQL.Class: instance Language.GraphQL.Class.FromGraphQL GHC.Base.String
+ Language.GraphQL.Class: instance Language.GraphQL.Class.ToGraphQL GHC.Base.String
- Language.GraphQL.Resolver: argument :: (MonadCatch m, FromGraphQL a) => Name -> ReaderT Context m a
+ Language.GraphQL.Resolver: argument :: forall (m :: Type -> Type) a. (MonadCatch m, FromGraphQL a) => Name -> ReaderT Context m a
- Language.GraphQL.Resolver: defaultResolver :: MonadCatch m => Name -> Resolve m
+ Language.GraphQL.Resolver: defaultResolver :: forall (m :: Type -> Type). MonadCatch m => Name -> Resolve m
- Test.Hspec.GraphQL: shouldResolve :: (MonadCatch m, Serialize b) => (Text -> IO (Either (ResponseEventStream m b) (Response b))) -> Text -> Expectation
+ Test.Hspec.GraphQL: shouldResolve :: forall (m :: Type -> Type) b. (MonadCatch m, Serialize b) => (Text -> IO (Either (ResponseEventStream m b) (Response b))) -> Text -> Expectation
- Test.Hspec.GraphQL: shouldResolveTo :: (MonadCatch m, Serialize b, Eq b, Show b) => Either (ResponseEventStream m b) (Response b) -> b -> Expectation
+ Test.Hspec.GraphQL: shouldResolveTo :: forall (m :: Type -> Type) b. (MonadCatch m, Serialize b, Eq b, Show b) => Either (ResponseEventStream m b) (Response b) -> b -> Expectation

Files

CHANGELOG.md view
@@ -6,6 +6,13 @@ and this project adheres to [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## [1.0.7.0] - 2026-01-25+### Removed+- Deprecated `Language.GraphQL.Class.gql` (moved to `Language.GraphQL.TH`).++### Added+- `String` instances from `ToGraphQL` and `FromGraphQL`.+ ## [1.0.6.0] - 2024-12-06 ### Added - `Language.GraphQL.Class.gql` is moved to `Language.GraphQL.TH` where it was@@ -46,6 +53,7 @@ - JSON serialization. - Test helpers. +[1.0.7.0]: https://git.caraus.tech/OSS/graphql-spice/compare/v1.0.6.0...v1.0.7.0 [1.0.6.0]: https://git.caraus.tech/OSS/graphql-spice/compare/v1.0.5.0...v1.0.6.0 [1.0.5.0]: https://git.caraus.tech/OSS/graphql-spice/compare/v1.0.4.0...v1.0.5.0 [1.0.4.0]: https://git.caraus.tech/OSS/graphql-spice/compare/v1.0.3.0...v1.0.4.0
graphql-spice.cabal view
@@ -1,54 +1,55 @@-cabal-version:      3.0+cabal-version: 3.0 -name:               graphql-spice-version:            1.0.6.0-synopsis:           GraphQL with batteries-description:        Various extensions and convenience functions for the core-                    graphql package.-category:           Language-homepage:           https://git.caraus.tech/OSS/graphql-spice-bug-reports:        https://git.caraus.tech/OSS/graphql-spice/issues-author:             Eugen Wissner <belka@caraus.de>-maintainer:         belka@caraus.de-copyright:          (c) 2021-2024 Eugen Wissner-license:            MPL-2.0-license-files:      LICENSE-build-type:         Simple+name: graphql-spice+version: 1.0.7.0+synopsis: GraphQL with batteries+description: Various extensions and convenience functions for the core+             graphql package.+category: Language+homepage: https://git.caraus.tech/OSS/graphql-spice+bug-reports: https://issues.caraus.tech/projects/graphql/issues+author: Eugen Wissner <belka@caraus.de>+maintainer: belka@caraus.de+copyright: (c) 2021-2026 Eugen Wissner+license: MPL-2.0+license-files: LICENSE+build-type: Simple extra-source-files: CHANGELOG.md tested-with:-  GHC == 9.8.2+  GHC == 9.12.2,+  GHC == 9.14.1  source-repository head   type: git   location: https://git.caraus.tech/OSS/graphql-spice.git  library-    exposed-modules:-      Language.GraphQL.Class-      Language.GraphQL.JSON-      Language.GraphQL.Resolver-      Language.GraphQL.TH-      Test.Hspec.GraphQL-    other-modules:-    hs-source-dirs:   src-    ghc-options: -Wall-    build-depends:-      aeson >= 2.0.3 && < 2.3,-      base >= 4.7 && < 5,-      conduit ^>= 1.3.4,-      containers >= 0.6 && < 0.8,-      exceptions ^>= 0.10.4,-      hspec-expectations >= 0.8.2 && < 0.9,-      graphql ^>= 1.5.0,-      megaparsec >= 9.0 && < 10,-      scientific ^>= 0.3.7,-      template-haskell >= 2.16 && < 3,-      text >= 1.2 && < 3,-      time >= 1.12.2 && < 1.15,-      transformers >= 0.5.6 && < 0.7,-      vector >= 0.12 && < 0.14,-      unordered-containers ^>= 0.2.16-    default-language: Haskell2010+  exposed-modules:+    Language.GraphQL.Class+    Language.GraphQL.JSON+    Language.GraphQL.Resolver+    Language.GraphQL.TH+    Test.Hspec.GraphQL+  other-modules:+  hs-source-dirs: src+  ghc-options: -Wall+  build-depends:+    aeson >= 2.0.3 && < 2.3,+    base >= 4.15 && < 5,+    conduit ^>= 1.3.4,+    containers >= 0.6 && < 0.9,+    exceptions ^>= 0.10.4,+    hspec-expectations >= 0.8.2 && < 0.9,+    graphql ^>= 1.5.0,+    megaparsec >= 9.0 && < 10,+    scientific ^>= 0.3.7,+    template-haskell >= 2.16 && < 3,+    text >= 1.2 && < 3,+    time >= 1.12.2 && < 1.16,+    transformers >= 0.5.6 && < 0.7,+    vector >= 0.12 && < 0.14,+    unordered-containers ^>= 0.2.16+  default-language: Haskell2010  test-suite graphql-test   type: exitcode-stdio-1.0
src/Language/GraphQL/Class.hs view
@@ -14,7 +14,6 @@     , ToGraphQL(..)     , deriveFromGraphQL     , deriveToGraphQL-    , gql     ) where  import Data.Int (Int8, Int16, Int32, Int64)@@ -47,7 +46,6 @@     , Dec(..)     , Exp(..)     , Info(..)-    , Lit(..)     , Quote(..)     , Name     , Q@@ -75,7 +73,6 @@     , litP     , wildP     )-import Language.Haskell.TH.Quote (QuasiQuoter(..)) import Data.Foldable (Foldable(..)) import qualified Data.HashMap.Strict as HashMap import qualified Language.GraphQL.Type as Type@@ -110,6 +107,10 @@   where     toGraphQL = Type.String +instance ToGraphQL String+  where+    toGraphQL = Type.String . Text.pack+ instance ToGraphQL Int   where     toGraphQL = Type.Int . fromIntegral@@ -222,6 +223,11 @@     fromGraphQL (Type.String value) = Just value     fromGraphQL _ = Nothing +instance FromGraphQL String+  where+    fromGraphQL (Type.String value) = Just $ Text.unpack value+    fromGraphQL _ = Nothing+ instance FromGraphQL Int   where     fromGraphQL = fromGraphQLToIntegral@@ -459,40 +465,3 @@         [ litE (stringL $ nameBase name')         , [|toGraphQL $(varE alias)|]         ]--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.TH.gql 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)"-    }