morpheus-graphql v0.11.0 Release Notes

Release Date: 2020-05-01 // almost 4 years ago
  • ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ›  Client generated enum data constructors are now prefixed with with the type name to avoid name conflicts.

    for Variant selection inputUnion uses inputname insead of __typename

    in Data.Morpheus.Server

    • gqlSocketApp and gqlSocketMonadIOApp are replaced with webSocketsApp

    - removed initGQLState, GQLState

    ๐Ÿ‘ for better control of subscriptions

    • replaced instance interpreter gqlRoot state with
      interpreter gqlRoot.
    • added: Input, Stream, httpPubApp

    from now on you can define API that can be
    ๐Ÿ‘‰ used in websockets as well as in http servers

    api :: Input api -\> Stream api EVENT IOapi = interpreter gqlRootserver :: IO ()server = do (wsApp, publish) \<- webSocketsApp api let httpApp = httpPubApp api publish ... runBoth wsApp httpApp
    

    where publish :: e -> m ()

    websockets and http app do not have to be on the same server.
    e.g. you can pass events between servers with webhooks.

    subscription can select only one top level field (based on the GraphQL specification).

    ๐Ÿ†• New features

    • ๐Ÿ”€ Instead of rejecting conflicting selections, they are merged (based on the GraphQL specification).
    • ๐Ÿ‘Œ Support for input lists separated by newlines. thanks @charlescrain
    • conflicting variable , fragment ... validation
    • issue #411: Aeson FromJSON ToJSON instances for ID

    minor

    • ๐Ÿ”„ changes to internal types
    • ๐Ÿ›  fixed validation of apollo websockets requests