morpheus-graphql v0.12.0 Release Notes

Release Date: 2020-05-21 // almost 4 years ago
  • morpheus-graphql

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ“ฆ Package was extracted as:

    ๐Ÿ“œ morpheus-graphql-core: core components like: parser, validator, executor, utils.

    • Data.Morpheus.Core
    • Data.Morpheus.QuasiQuoter
    • Data.Morpheus.Error
    • Data.Morpheus.Internal.TH
    • Data.Morpheus.Internal.Utils
    • Data.Morpheus.Types.Internal.Resolving
    • Data.Morpheus.Types.Internal.Operation
    • Data.Morpheus.Types.Internal.AST

    - Data.Morpheus.Types.IO

    morpheus-graphql-client: lightweight version of morpheus client without server implementation

    - Data.Morpheus.Client

    morpheus-graphql: morpheus graphql server

    • Data.Morpheus
    • Data.Morpheus.Kind
    • Data.Morpheus.Types
    • Data.Morpheus.Server
    • Data.Morpheus.Document

    ๐Ÿ—„ deprecated:

    • Res, IORes, ResolveQ : use ResolverQ
    • MutRes, IOMutRes, ResolveM : use ResolverM
    • SubRes, IOSubRes, ResolveS: use ResolverS
    • failRes: use MonadFail

    ๐Ÿ†• New Feature

    ๐Ÿ‘ Semigroup support for Resolver

    ๐Ÿ‘ MonadFail Support for Resolver

    flexible resolvers: ResolverO, ResolverQ , RwsolverM, ResolverS
    they can handle object and scalar types:

    -- if we have record and regular Intdata Object m = Object { field :: m Int }-- we canwrite-- handes kind : (\* -\> \*) -\> \*resolveObject :: ResolverO o EVENT IO Object-- is alias to: Resolver o () IO (Object (Resolver o () IO))-- or-- handes kind : \*resolveInt :: ResolverO o EVENT IO Int-- is alias to: Resolver o () IO Int
    

    the resolvers : ResolverQ , RwsolverM, ResolverS , are like
    ResolverO but with QUERY , MUTATION and SUBSCRIPTION as argument.

    flexible compsed Resolver Type alias: ComposedResolver. extends ResolverO with
    parameter (f :: * -> *). so that you can compose Resolvers e.g:

    resolveList :: ComposedResolver o EVENT IO [] Object-- is alias to: Resolver o () IO [Object (Resolver o () IO))]resolveList :: ComposedResolver o EVENT IO Maybe Int-- is alias to: Resolver o () IO (Maybe Int)
    

    ๐Ÿ‘€ server supports interfaces (see Readme):

    1. define interface with Haskell Types (runtime validation):

    2. define interface with importGQLDocument and DSL (compile time validation):

    ๐Ÿ‘Œ support default directives: @skip and @include

    SelectionTree interface

    minor

    • ๐Ÿ›  fixed subscription sessions, srarting new session does not affects old ones.
    • โž• added tests for subscriptions

    morpheus-graphql-core

    0.12.0 - 21.05.2020

    ๐Ÿ†• New features

    ๐Ÿ“œ parser supports implemnets interfaces seperated with empty spaces

    type T implements A , B C & D {
    

    introspection can render interfaces