MIT licensed by Daviti Nalchevanidze
This version can be pinned in stack with:morpheus-graphql-core-0.20.0@sha256:c638ba6c38bb3607b465f7d6db3f48a8e69c8139715364d72209a001c7fa19b1,13948
Module documentation for 0.20.0
Depends on 15 packages
(full list with versions):
aeson,
base,
bytestring,
containers,
hashable,
megaparsec,
mtl,
relude,
scientific,
template-haskell,
text,
th-lift-instances,
transformers,
unordered-containers,
vector Morpheus GraphQL Core
provides the following core functionalities
for building GraphQL Server, Client:
- AST
- parsing
- validation
- pretty-printing
- utils
Changelog
see latest changes on Github
0.19.0 - 21.03.2022
Minor Changes
- accept indexes for GraphQL Error Path (#662)
- supports aeson 2.0
0.18.0 - 08.11.2021
- GraphQL errors support additional field
extensions :: Maybe Value
- the parser reports invalid empty selection sets
- The parser is compliant with the GQL specification and supports all valid characters #581
- The parser performance improvement: on average 3-4 times faster, in some cases more than 100 times faster.
0.17.0 - 25.02.2021
New features
Data.Morpheus.Core
provides default GrapHQL type definitions with internalSchema
- exposed
Data.Morpheus.Internal.Ext
Breaking changes
-
parseTypeSystemDefinition
and parseGQLDocument
is replaced with parseSchema
-
parseFullGQLDocument
replaced with parseFullSchema
-
removed parseDSL
from Data.Morpheus.Core
-
following Types and modules are migrated to the new package morpheus-graphql-app
:
- following types and functions in
Data.Morpheus.Core
are moved in to Data.Morpheus.App
:
App
, AppData
, runApp
, withDebugger
, mkApp
, runAppStream
- typeClass
MapAPI
migrated from Data.Morpheus.Types.IO
is moved into Data.Morpheus.App
Data.Morpheus.Types.Internal.Resolving
moved asData.Morpheus.App.Internal.Resolving
-
RootResModel
was renamed to RootResolverValue
-
ResModel
was replaced with more general ResolverValue
-
GQLScalar
was replaced with EncodeScalar
and DecodeScalar
type-classes.
-
Value.Float
is now Double
instead of Float
.
0.16.0 - 05.11.2020
Breaking Changes
-
signature changes:
-
render
:
a -> Text
to a -> ByteString
-
parseTypeSystemDefinition :
Text -> Eventless (Schema VALID)
to ByteString -> Eventless (Schema VALID)
-
parseTypeDefinitions:
Text -> Eventless [TypeDefinition ANY CONST]
to ByteString -> Eventless [TypeDefinition ANY CONST]
new features
Minor Changes
- parser performance optimization
0.15.1 - 12.09.2020
relaxed upper boundary of megaparsec
up to 10.0.0
0.15.0 - 12.09.2020
new features
-
render
renders SchemaDefinition e.g
schema {
query: MyQuery
}
-
query validator automatically adds __typename
to interface types
-
type : App
api :: a -> m b
api = runApp (mkApp schema resolvers)
-
App
supports semigroup(schema Stitching
):
if whe have two apps app1
and app2
with type Api EVENT IO
we can merge it as.
mergedApi :: a -> m b
mergedApi = runApp (app1 <> app2)
-
runApp
changed signature to:
runApp :: Api e m -> a -> m b
Breaking Changes
Minor Changes
0.14.1 - 16.08.2020
0.14.0 - 15.08.2020
new features
-
query validation supports interfaces
-
exposed: Data.Morpheus.Types.SelectionTree
-
configurable api: Data.Morpheus.Core
exports
Config
defaultConfig
debugConfig
-
for better debugging, internal errors messages will display resolving state:
current TypeName
current Selection
OperationDefinition
SchemaDefinition
-
rendering graphql “AST”. e.g render (selection :: Selection VALID)
will render
{
user(arg1: 1) {
name
}
}
- quasiquoter
[dsl| <type definitions> |]
generates Schema VALID
.
- parser supports custom directive definition. e.g
directive @MyDirective on FIELD_DEFINITION | OBJECT
-
directive Validation for Document (TypeSystem).
-
supports of block string values. e.g:
query {
createDeity(
name: """
power
bla \n sd
blu \\ date
"""
) {
name
}
}
-
support of schema
. issue #412
schema {
query: MyQuery
}
Breaking Changes
-
Context' renamed to
ResolverContext’
-
removed : EventCon
from Data.Morpheus.Core
-
internal refactoring: changed AST.
Schema AST Types now need parameter stage = RAW | CONST | VALID
.
Schema VALID
TypeDefinition VALID
FieldDefinition IN VALID
- …
-
runApi requires argument config
runApi ::
Schema s ->
RootResModel event m ->
Config ->
GQLRequest ->
ResponseStream event m (Value VALID)
0.13.0 - 22.06.2020
new features
- exposed:
Data.Morpheus.Types.GQLScalar
- exposed:
Data.Morpheus.Types.ID
- finished interface validation
- supports default values
minor changes
- internal refactoring
- added dependency
mtl
- validates strings as enum from JSON value
0.12.0 - 21.05.2020
New features
-
parser supports implements interfaces separated with empty spaces
type T implements A , B C & D {
-
introspection can render interfaces