From a2a795024cc9895c84df70b51ec2b2f3f0925da0 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 18 May 2020 21:19:50 -0400 Subject: [PATCH] enables extension of graphql schema --- demo/payload.config.js | 4 ++++ src/graphql/index.js | 10 ++++++++++ src/utilities/sanitizeConfig.js | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/demo/payload.config.js b/demo/payload.config.js index f32cd1135b..618f64fcf8 100644 --- a/demo/payload.config.js +++ b/demo/payload.config.js @@ -57,6 +57,10 @@ module.exports = { scss: path.resolve(__dirname, 'client/scss/overrides.scss'), }, mongoURL: 'mongodb://localhost/payload', + graphQL: { + mutations: {}, + queries: {}, + }, localization: { locales: [ 'en', diff --git a/src/graphql/index.js b/src/graphql/index.js index 574009c316..bfec5160b9 100644 --- a/src/graphql/index.js +++ b/src/graphql/index.js @@ -39,6 +39,16 @@ class GraphQL { this.initCollections(); this.initGlobals(); + this.Query = { + ...this.Query, + ...(this.config.queries), + }; + + this.Mutation = { + ...this.Mutation, + ...(this.config.mutations), + }; + const query = new GraphQLObjectType(this.Query); const mutation = new GraphQLObjectType(this.Mutation); const schema = new GraphQLSchema({ query, mutation }); diff --git a/src/utilities/sanitizeConfig.js b/src/utilities/sanitizeConfig.js index 69126b9b0e..8f73ab2625 100644 --- a/src/utilities/sanitizeConfig.js +++ b/src/utilities/sanitizeConfig.js @@ -11,6 +11,13 @@ const sanitizeConfig = (config) => { sanitizedConfig.collections.push(defaultUser); } + if (!sanitizedConfig.graphQL) { + sanitizedConfig.graphQL = {}; + } + + if (sanitizedConfig.graphQL.mutations) sanitizedConfig.graphQL.mutations = {}; + if (sanitizedConfig.graphQL.queries) sanitizedConfig.graphQL.queries = {}; + sanitizedConfig.routes = { admin: (config.routes && config.routes.admin) ? config.routes.admin : '/admin', api: (config.routes && config.routes.api) ? config.routes.api : '/api',