Releases: graphql-hive/graphql-modules
Releases · graphql-hive/graphql-modules
0.4.0
- Remove circular dep support and using name in definitions are also removed
🚀 BREAKING CHANGE! ; circular deps must be fixed in the projects which uses old version - Reimplement
forRoot
andforChild
logic - Remove
modulesMap
- Generate more readable module names
- Reimplement and optimize schema merge logic
- Remove
mergeModules
- Add more unit tests
- Implement better
directiveResolvers
logic - Make sure session is deleted from memory when WS connection is terminated
- Custom logger definition enhancement
- Move
composeResolvers
toutils
resolvers
field is now able to take an array of resolvers.
import { GraphQLModule } from '@graphql-modules/core';
import { loadResolversFiles, loadSchemaFiles } from '@graphql-modules/sonar';
export const UserModule = new GraphQLModule({
typeDefs: loadSchemaFiles(__dirname + '/schema/'),
resolvers: loadResolversFiles(__dirname + '/resolvers/'),
});
- FIX: Call
middleware
immediately after schema built - FIX: Expose
ModuleSessionInfo
- Add Default
ProviderScope
option;defaultProviderScope
- Performance Improvements; initial schema construction and context builder is way faster. (80% / 90% short response time)
v0.3.0
core
- Subscriptions Support w/ onConnect hook #267
- Add
config
andname
field inModuleSessionInfo
- Better error handling for undefined service identifier
- Better error handling for context builder
- 🚀 BREAKING CHANGE! Able to use
Inject
in a property and useInjectFunction
for factory functions instead ofInject
@Injectable()
class SomeProvider {
@Inject(SomeOtherProvider)
someOtherProvider: SomeOtherProvider;
}
resolvers: InjectFunction(SomeProvider)(someProvider => ({
foo: () => someProvider.foo()
}))
- 🚀BREAKING CHANGE! Now
session
name is used for the network request object passed from GraphQL-Server to prevent confusion betweenrequest
andreq
ofexpress
. - 🚀BREAKING CHANGE!
CommunicationBridge
is now deprecated; you can usePubSub
implementations recommended by Apollo.- You can see the docs for details and changes in the API.
v0.2.18
epoxy
- Fixed issues with merging GraphQL schemas that uses
extend type
syntax (#238)
core
- Fixed issues with context merging (#229)
- Fixed issues with Apollo
dataSources
integration (#229) - Support
resolverValidationOptions
(https://www.apollographql.com/docs/graphql-tools/generate-schema.html#makeExecutableSchema) - Prevent illegal resolver invocation and use way to access children cache (24aa36a)
- Fixes for modules cache (d74cc12)
- Ignore
scalar
resolvers during resolvers wrapping (76f0fc4)
di
- Fixed issues with exported
ProviderScope
(now exported as validenum
)
v0.2.17
- DI package is now seperated;
-
- Injectable and Inject are now in
@graphql-modules/di
instead of@graphql-modules/core
- Injectable and Inject are now in
- Do not add an extra schema definition to the final typeDefs.
- Introduce
configRequired
option; if it is true, it won't be able to generate schema without a valid configuration. directiveResolvers
support- Injection for factory functions using
Inject
decorator-like function. - Middleware option to mutate schema and injector
- Fix schema merging
- Do not emit scalars
v0.2.10
core
- Fix IResolver typings
- You can disable circular imports
-
mergeCircularImports: false
- You can manipulate
schema
and other generated parts of module using middleware -
middleware: ({ schema }) => { /*some logic*/ return { schema }; }
epoxy
- Extension nodes are now supported
-
extend type Something
- SchemaDefinition generation are now optional
-
useSchemaDefinition
v0.2.7
v0.2.6
v0.2.5
Epoxy
- Expose
DocumentNode
instead ofstring
.
Core
- Reflect the changes from
epoxy
API to exposeDocumentNode
.
Utils
- Added missing
getFieldsWithDirectives
function.
v0.2.4
Epoxy
- Fixed issues with schema merging that does not have valid AST Nodes (workaround for graphql/graphql-js#1575)
Logger
- Logger package is now removed.
Core
- Allow
extraSchemas
to be loaded into a module