diff --git a/src/index.js b/src/index.js index 9de26b6..16c540e 100644 --- a/src/index.js +++ b/src/index.js @@ -2,6 +2,7 @@ import {graphql} from 'graphql'; import {getTypes} from './type'; import {getSchema} from './schema'; import {getModels} from './model'; +import {processId} from './query'; function _getTypes(mongooseModels) { const graffitiModels = getModels(mongooseModels); @@ -11,11 +12,13 @@ function _getTypes(mongooseModels) { export default { graphql, getSchema, - getTypes: _getTypes + getTypes: _getTypes, + processId }; export { graphql, getSchema, - _getTypes as getTypes + _getTypes as getTypes, + processId }; diff --git a/src/query/query.js b/src/query/query.js index 7cf8c48..656616e 100644 --- a/src/query/query.js +++ b/src/query/query.js @@ -325,7 +325,8 @@ export default { getListResolver, getAddOneMutateHandler, getUpdateOneMutateHandler, - getDeleteOneMutateHandler + getDeleteOneMutateHandler, + processId }; export { @@ -337,5 +338,6 @@ export { getUpdateOneMutateHandler, getDeleteOneMutateHandler, getListResolver, - connectionFromModel + connectionFromModel, + processId }; diff --git a/src/schema/schema.js b/src/schema/schema.js index 461571a..595cef7 100644 --- a/src/schema/schema.js +++ b/src/schema/schema.js @@ -1,4 +1,4 @@ -import {reduce, isArray} from 'lodash'; +import {reduce, isArray, isFunction} from 'lodash'; import { GraphQLList, GraphQLNonNull, @@ -222,6 +222,7 @@ function getFields(graffitiModels, { hooks = {}, mutation = true, allowMongoIDMutation = false, customQueries = {}, customMutations = {} } = {}) { + const types = type.getTypes(graffitiModels); const {viewer, singular} = hooks; @@ -258,8 +259,8 @@ function getFields(graffitiModels, { } }; }, { - queries: customQueries, - mutations: customMutations + queries: isFunction(customQueries) ? customQueries(types) : customQueries, + mutations: isFunction(customMutations) ? customMutations(types) : customMutations }); const RootQuery = new GraphQLObjectType({