Changelog for morpheus-graphql-core-0.28.1
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.Coreprovides default GrapHQL type definitions withinternalSchema- exposed
Data.Morpheus.Internal.Ext
Breaking changes
-
parseTypeSystemDefinitionandparseGQLDocumentis replaced withparseSchema -
parseFullGQLDocumentreplaced withparseFullSchema -
removed
parseDSLfromData.Morpheus.Core -
following Types and modules are migrated to the new package
morpheus-graphql-app:- following types and functions in
Data.Morpheus.Coreare moved in toData.Morpheus.App:App,AppData,runApp,withDebugger,mkApp,runAppStream - typeClass
MapAPImigrated fromData.Morpheus.Types.IOis moved intoData.Morpheus.App Data.Morpheus.Types.Internal.Resolvingmoved asData.Morpheus.App.Internal.Resolving
- following types and functions in
-
RootResModelwas renamed toRootResolverValue -
ResModelwas replaced with more generalResolverValue -
GQLScalarwas replaced withEncodeScalarandDecodeScalartype-classes. -
Value.Floatis nowDoubleinstead ofFloat.
0.16.0 - 05.11.2020
Breaking Changes
-
signature changes:
-
render:a -> Texttoa -> ByteString -
parseTypeSystemDefinition :
Text -> Eventless (Schema VALID)toByteString -> Eventless (Schema VALID) -
parseTypeDefinitions:
Text -> Eventless [TypeDefinition ANY CONST]toByteString -> 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
-
renderrenders SchemaDefinition e.gschema { query: MyQuery } -
query validator automatically adds
__typenameto interface types -
type :
Appapi :: a -> m b api = runApp (mkApp schema resolvers) -
Appsupports semigroup(schema Stitching):if whe have two apps
app1andapp2with typeApi EVENT IOwe can merge it as.mergedApi :: a -> m b mergedApi = runApp (app1 <> app2) -
runAppchanged signature to:runApp :: Api e m -> a -> m b
Breaking Changes
- removed
runApi.
Minor Changes
- internal refactoring
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.CoreexportsConfigdefaultConfigdebugConfig
-
for better debugging, internal errors messages will display resolving state:
current TypeNamecurrent SelectionOperationDefinitionSchemaDefinition
-
rendering graphql "AST". e.g
render (selection :: Selection VALID)will render
{
user(arg1: 1) {
name
}
}
- quasiquoter
[dsl| <type definitions> |]generatesSchema 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 #412schema { query: MyQuery }
Breaking Changes
-
Context' renamed toResolverContext' -
removed :
EventConfromData.Morpheus.Core -
internal refactoring: changed AST. Schema AST Types now need parameter
stage = RAW | CONST | VALID.Schema VALIDTypeDefinition VALIDFieldDefinition 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