| 
									
										
										
										
											2020-01-24 15:39:14 +01:00
										 |  |  | // eslint-disable-next-line node/no-extraneous-require
 | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  | const loadUtils = require('strapi/lib/load'); | 
					
						
							|  |  |  | const _ = require('lodash'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const loadApisGraphqlConfig = appPath => | 
					
						
							|  |  |  |   loadUtils.loadFiles(appPath, 'api/**/config/*.graphql?(.js)'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const loadPluginsGraphqlConfig = async installedPlugins => { | 
					
						
							|  |  |  |   const root = {}; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   for (let pluginName of installedPlugins) { | 
					
						
							|  |  |  |     const pluginDir = loadUtils.findPackagePath(`strapi-plugin-${pluginName}`); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const result = await loadUtils.loadFiles( | 
					
						
							|  |  |  |       pluginDir, | 
					
						
							|  |  |  |       'config/*.graphql?(.js)' | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2020-01-30 10:49:42 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  |     _.set(root, ['plugins', pluginName], result); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2019-06-10 20:37:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  |   return root; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const loadLocalPluginsGraphqlConfig = async appPath => | 
					
						
							|  |  |  |   loadUtils.loadFiles(appPath, 'plugins/**/config/*.graphql?(.js)'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-10 20:37:13 +02:00
										 |  |  | const loadExtensions = async appPath => | 
					
						
							|  |  |  |   loadUtils.loadFiles(appPath, 'extensions/**/config/*.graphql?(.js)'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Loads the graphql config files | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | module.exports = async ({ appPath, installedPlugins }) => { | 
					
						
							| 
									
										
										
										
											2019-06-10 20:37:13 +02:00
										 |  |  |   const [apis, plugins, localPlugins, extensions] = await Promise.all([ | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  |     loadApisGraphqlConfig(appPath), | 
					
						
							|  |  |  |     loadPluginsGraphqlConfig(installedPlugins), | 
					
						
							|  |  |  |     loadLocalPluginsGraphqlConfig(appPath), | 
					
						
							| 
									
										
										
										
											2019-06-10 20:37:13 +02:00
										 |  |  |     loadExtensions(appPath), | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  |   ]); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-10 20:37:13 +02:00
										 |  |  |   return _.merge({}, apis, plugins, extensions, localPlugins); | 
					
						
							| 
									
										
										
										
											2019-04-09 21:51:28 +02:00
										 |  |  | }; |